0

tw (または Tw、または TW) で始まる単語が引用符 (一重または二重) で囲まれているかどうかにかかわらず、正規表現を作成するのに苦労しています。これまでのところ、'\b[tT][wW][a-zA-Z0-9]*' は tw、Tw、および TW の開始単語をすべてキャッチしますが、一重引用符または二重引用符で囲まれたものは見逃しています。tweeple と TWEEPLE の両方が見つかりますが、'tweeple' や "TWEEPLE" は見つかりません。

大変助かりました。

4

1 に答える 1

2

文字列内のは、正規表現エンジンによって単語境界として解釈される\bシーケンスではなく、バックスペース文字として解釈されています。文字列を生の文字列リテラル\bに変更するか、バックスラッシュをエスケープすると、機能するはずです。

>>> 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
于 2012-04-05T16:25:29.003 に答える