我是regex的新手,并且想知道如何对两个字符串进行模式匹配。用例将类似于在某些文本中找到特定短语。如果使用python 3.7,那会有所不同。
phrase = "some phrase" #the phrase I'm searching for
可能的比赛:
text = "some#@$#phrase"
^^^^ #non-alphanumeric can be treated like a single space
text = "some phrase"
text = "!!!some!!! phrase!!!"
这些不匹配:
text = "some phrases"
^ #the 's' on the end makes it false
text = "ssome phrase"
text = "some other phrase"
我尝试使用类似的东西:
re.search(r'\b'+phrase+'\b', text)
如果您提供有效的解决方案,我非常感谢您解释正则表达式为何有效的原因。
答案 0 :(得分:1)
您应该使用类似这样的内容:
re.search(r'\bsome\W+phrase\b', text)
'\ W'表示非单词字符
'+'表示一次或多次
如果变量中有给定的短语,则可以尝试以下操作:
some_phrase = some_phrase.replace(r' ', r'\W+')