正则表达式OR / ALTERNATIVE帮助

时间:2011-08-17 03:24:31

标签: regex

需要一些正则表达式的帮助

我正在尝试匹配一个落在较大字符串的乞讨或结尾的字符串,或者跟随或后面跟着空格。或者两者的任意组合。

(基本上我想找到一个特定的字符串,但只有当它不是另一个单词或短语的一部分时才匹配。如果我搜索的字符串是“IE”我不想匹配“是”在“区域”一词中,因此搜索字符串的开头或结尾,或者跟随或后面跟着空格。)

以下是我现在所拥有的:

re.compile('^(%(string)s)$|\s(%(string)s)$|^(%(string)s)\s|\s(%(string)s)\s' % {'string': my_string})

使用两个|是否有一种不那么冗长的写法。一个在开始或空白的边缘,一个在结束或空白的一端?

现在写我正在写出开始选项*结束选项的每个排列,并认为其效率较低。

1 个答案:

答案 0 :(得分:3)

使用\b s

包裹您的搜索字词
\bstring\b

\b匹配单词边界,重要的是“零宽度”(不消耗任何字符)