1

我是正则表达式的新手,想知道如何对两个字符串进行模式匹配。用例类似于在某些文本中查找某个短语。如果这有所作为,我正在使用 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)

如果您提供有效的解决方案,我将非常感谢您解释为什么正则表达式有效。

4

1 回答 1

1

你应该使用这样的东西:

re.search(r'\bsome\W+phrase\b', text)
  • '\W' 表示非单词字符

  • '+' 表示一次或多次

如果您在变量中有给定的短语,您可以先尝试一下:

some_phrase = some_phrase.replace(r' ', r'\W+')
于 2018-11-10T14:39:36.550 回答