代码之家  ›  专栏  ›  技术社区  ›  megna

python中的通配符匹配

  •  0
  • megna  · 技术社区  · 7 年前

    我有一根蟒蛇弦

    x =  "orange".
    

    程序接受一个输入字符串。如果输入字符串与x的通配符模式匹配,那么我将执行一些操作。 模式是

    pattern = "#.orange.*" 
    

    #(哈希)-可以替换零个或多个单词。

    *(星)-只能替换一个词。

    所以,如果我的输入字符串是“quick.orange.rabbit”,那么它应该匹配。有人能帮我用Python做这个吗?是吗? 我试过了-

    import re
    input_str = input("enter string")
    pattern = #.orange.*
    p = re.compile(pattern)
    if p.match(input_str):
       # do something
    

    事先谢谢。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Rens Oliemans    7 年前


    pattern = r"(?P<hash>(\w+|\s)*)\.(?P<orange>orange)\.(?P<star>\w+)"
    

    按句点分隔的哈希词

    pattern = r"(?P<hash>(\w+|\.)*)\.(?P<orange>orange)\.(?P<star>\w+)"
    

    pattern = r"(?P<hash>(\w*))\.(?P<orange>orange)\.(?P<star>\w+)"
    

    如果你不想要(?p<gt;)语法,您也可以执行以下操作

    pattern = r"(\w+|\s)*\.orange\.\w+"
    

    match.group('hash')
    

    得到散列词。