2012-04-05 16 views
0

tw(またはTw、TW)で始まる単語を引用符で囲むかどうかにかかわらず、正規表現を作成するのは難しいです。 これまでのところ、\ b [tT] [w-a-zA-Z0-9] * 'はtw、Tw、TWのすべての開始語を捕まえていますが、 tweepleとtweepleの両方を検索しますが、 'tweeple'でも 'tweeple'でもありません。regexp:tw-接頭辞付きの単語(オプションの引用符付き)

大変助けになりました。

答えて

2

文字列内の\bは、正規表現エンジンによって単語境界として解釈されるシーケンス\bではなく、バックスペース文字として解釈されています。 raw string literalにあなたの文字列を変更するか、バックスラッシュをエスケープし、それが動作するはずです:

ここ
>>> re.findall(r'\b[tT][wW][a-zA-Z0-9]*', ' "TWEEPLE" tweeple ') 
['TWEEPLE', 'tweeple'] 

は、違いの例です:

>>> 'abc\b' 
'abc\x08' 
>>> print 'abc\b' 
abc 
>>> r'abc\b' 
'abc\\b' 
>>> print r'abc\b' 
abc\b 
+0

大漁を '\ B'されていないリテラルに。そして私はそれが引用符を含んでいることを理解していませんでした。私の答えを削除する。 –

関連する問題