ホームページ >バックエンド開発 >Python チュートリアル >Python の `re` モジュールの `\b` が単語の境界と一致しないことがあるのはなぜですか?
Python 正規表現での b 単語境界の使用
正規表現は強力なパターン マッチング機能を提供し、単語境界 (b) は重要な役割を果たします一致のコンテキストを定義する際に。ただし、Python の re モジュールに b を適用すると、予期しない結果が生じるため疑問が生じます。
問題ステートメント
正規表現を試しているときに、b が失敗したように見える状況に遭遇する可能性があります。意図どおり。たとえば、次のスニペットを考えてみましょう:
x = 'one two three' y = re.search("\btwo\b", x)
一致オブジェクトの期待にもかかわらず、 y は None と評価され、b の誤った使用法が示唆されます。
Solution
Python で単語の境界を正しく一致させるには、正規表現で生の文字列 (r がプレフィックス付き) を使用していることを確認してください。これにより、エスケープ文字が誤って解釈される可能性が排除されます。
x = 'one two three' y = re.search(r"\btwo\b", x)
生の文字列を利用することで、b 構文が単語の境界として認識され、検索が成功します。
さらに、次のことができます。以下を考慮して、正規表現を使用した単語境界の一致を強化します。
word = 'two' k = re.compile(r'\b%s\b' % word, re.I) x = 'one two three' y = k.search(x)
この例では、正規表現がコンパイルされ、文字列内の単語のバリエーション (例: "two" と "two") が受け入れられます。 "Two").
これらのニュアンスを理解すると、Python 正規表現アプリケーションで単語境界の可能性を最大限に活用できるようになります。
以上がPython の `re` モジュールの `\b` が単語の境界と一致しないことがあるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。