3

句読点と行の終わりを説明する文の単語と一致する文字列正規表現について、いくつかの助けが必要です。行末の場合、私の試みは失敗します。

次の例は、必要に応じて評価します。

>>> print bool(re.search('test[^a-z]','test!'.lower()))
True
>>> print bool(re.search('test[^a-z]','test aaa'.lower()))
True
>>> print bool(re.search('test[^a-z]','testaaa'.lower()))
False

ただし、行末の場合は次のように評価されFalseます。

>>> print bool(re.search('test[^a-z]','test'.lower()))
False

行末文字$がセットに含まれていないa-zので、この場合も評価されると思いましTrueた。どうすればこれを処理できregexますか?

4

1 に答える 1

9

否定先読みを使用できます:

'test(?![a-z])'

または代替

'test([^a-z]|$)'
于 2012-10-31T13:46:59.557 に答える