Python正则表达式 - 匹配仅包含A,B或C的单词

use*_*778 2 python regex match

我可以使用什么正则表达式来匹配由字符A,B或C组成的单词?例如,正则表达式将捕获ABCBACBACBABBABCC和A和B和C,但不会捕获ABCD,ABC1等.

mgi*_*son 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>
Run Code Online (Sandbox Code Playgroud)

\b是一个单词边界.所以这里我们匹配任何单词边界后面跟着的东西A,B或者C字符直到下一个单词边界.


对于那些不喜欢正则表达式的人,我们也可以set在这里使用对象:

>>> set("ABC").issuperset("ABCABCABC")
True
>>> set("ABC").issuperset("ABCABCABC1")
False
Run Code Online (Sandbox Code Playgroud)