2013-05-20 107 views

回答

8

\b[ABC]+\b?那樣有用嗎?

>>> regex = re.compile(r'\b[ABC]+\b') 
>>> regex.match('AACCD') #No match 
>>> regex.match('AACC') #match 
<_sre.SRE_Match object at 0x11bb578> 
>>> regex.match('A')  #match 
<_sre.SRE_Match object at 0x11bb5e0> 

\b是一個字邊界。因此,我們在此匹配任何字詞邊界,後面跟着只有ABC個字符,直到下一個字邊界。


對於那些誰不喜歡正則表達式,我們可以在這裏使用set對象,以及:

>>> set("ABC").issuperset("ABCABCABC") 
True 
>>> set("ABC").issuperset("ABCABCABC1") 
False 
+0

謝謝你的作品! – user2104778

0

你正在尋找的正則表達式爲r'\b([ABC]+)\b'

你可以編譯:

>>> regex = re.compile(r'\b([ABC]+)\b') 

,然後你可以做一些事情吧:

>>> regex.match('ABC') # find a match with whole string. 
>>> regex.search('find only the ABC') # find a match within the whole string. 
>>> regex.findall('this will find only the ABC elements in this ABC test text') # find 2 matches. 

如果你想忽略的話,那麼使用:

>>> regex = re.compile(r'\b([ABC]+)\b', re.I) 
相關問題