ホームページ > バックエンド開発 > Python チュートリアル > Python の「re」モジュールは正規表現の単語境界 (「\b」) を正しく処理しますか?

Python の「re」モジュールは正規表現の単語境界 (「\b」) を正しく処理しますか?

Susan Sarandon
リリース: 2024-12-02 17:06:11
オリジナル
1024 人が閲覧しました

Does Python's `re` Module Correctly Handle Word Boundaries (`b`) in Regular Expressions?

re モジュールの正規表現は単語境界 (b) をサポートしますか?

単語境界に一致させるために b エスケープ シーケンスを使用しようとしているときPython の re モジュールでは不整合が発生する可能性があります。次のコード スニペットはこれを示しています。

>>> x = 'one two three'
>>> y = re.search("\btwo\b", x)
ログイン後にコピー

驚くべきことに、予期された一致オブジェクトが存在せず、代わりに None が返されます。これにより、Python が b 式をサポートしているのか、それともその使用法が間違っているのかという疑問が生じます。

この不一致は、コード内で通常の文字列が使用されていることが原因です。以下に示すように、代わりに生の文字列を使用する必要があります。

>>> x = 'one two three'
>>> y = re.search(r"\btwo\b", x)
ログイン後にコピー

この変更により問題が解決され、意図したとおりの一致オブジェクトが得られます。

さらに、次のアプローチの使用を検討してください。

word = 'two'
re.compile(r'\b%s\b' % word, re.I)
ログイン後にコピー

これにより、大文字と小文字を区別しない一致が保証され、成功する一致の範囲が拡大する可能性があります。

以上がPython の「re」モジュールは正規表現の単語境界 (「\b」) を正しく処理しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート