2011-08-17 145 views
1

需要一點點幫助,正則表達式正則表達式OR /替代幫助

我想匹配落在一個較大的字符串的乞討或結束,或跟隨或之後whitepace的字符串。或者兩者的任何組合。

(基本上我想找到一個特定的字符串,但只匹配它,如果它不是另一個單詞或短語的一部分,如果我搜索的字符串是「我不想匹配」IE 「單詞‘區域’,因此無論是開始或搜索字符串的結尾,或跟隨或後面是空白)

這是我現在有:

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

有沒有一種更簡潔的方式用兩個|寫這個。一個是開始還是空白,一個是結束還是空白?

現在寫我寫出開始選項*結束選項的每個排列,並認爲它效率較低。

回答

3

\b S環繞你的搜索詞:

\bstring\b 

\b一個單詞邊界匹配,並且重要的是「零寬度」(不消耗字符)

+0

謝謝你,正則表達式是其中的一件事情在那裏你可以確切地知道你在找什麼,看起來不可能找到答案 – MattoTodd