文字 A、B、または C のみで構成される単語に一致させるには、どの正規表現を使用できますか? たとえば、正規表現は ABCBACBACBABBABCC と A と B と C をキャッチしますが、ABCD、ABC1 などはキャッチしません。
質問する
2010 次
2 に答える
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
単語境界です。A
したがって、ここでは、単語境界の後に,B
またはC
文字のみが続き、次の単語境界まで一致します。
正規表現が嫌いな人のために、set
ここでもオブジェクトを使用できます。
>>> set("ABC").issuperset("ABCABCABC")
True
>>> set("ABC").issuperset("ABCABCABC1")
False
于 2013-05-20T13:06:49.613 に答える
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)
于 2013-05-20T13:15:10.770 に答える