3

たとえば、単語testが文字列に含まれているかどうかを確認したいとします。通常、私はただ:

if 'test' in theString

ただし、文字列だけでなく、実際の単語であることを確認したいと思います。たとえば、test「それは嫌だった」では、誤検知が発生します。(\s)test(\s)(前後のスペース)が含まれていることを確認できましたが、「...テストの準備をしてください!」よりも 偽陰性になります。私の唯一の他のオプションはこれのようです:

if ' test ' in theString or ' test.' in theString or ' test!' in theString or.....

これを適切に行う方法はありますif 'test'.asword in theStringか?

4

1 に答える 1

10
import re
if re.search(r'\btest\b', theString):
    pass

これにより、 の両端で単語境界が検索されますtestドキュメントから、\b

空の文字列に一致しますが、単語の先頭または末尾にのみ一致します。単語は一連の英数字またはアンダースコア文字として定義されるため、単語の終わりは、空白または非英数字、非アンダースコア文字で示されます。

于 2012-08-03T23:53:42.207 に答える