ホームページ > バックエンド開発 > Python チュートリアル > Python の単語境界を使用して文字列と特殊文字を確実に一致させるにはどうすればよいですか?

Python の単語境界を使用して文字列と特殊文字を確実に一致させるにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-07 14:17:12
オリジナル
947 人が閲覧しました

How Can I Reliably Match Strings with Special Characters Using Python's Word Boundaries?

Python の単語境界と特殊文字

Python 正規表現で単語境界マッチングに b パターンを使用すると、次の場合に予期しない結果が発生する可能性があります。検索パターンには括弧や中括弧などの特殊文字が含まれています。

具体的には、 b は単語の境界でのみ一致します。文字は単語文字 (英数字またはアンダースコア) です。これは、たとえば、bSortesindex[persons]{Sortes} は、Sortes の後に特殊文字 (}index) があるため、テスト Sortesindex[persons]{Sortes} テキストと一致しないことを意味します。

適切に一致する場合は、次の解決策を検討してください:

  • アダプティブ ワード境界:

    • 文字列の先頭または末尾、または単語文字ステータスが異なる文字間で一致する適応型単語境界を使用します:

      re.search(r'(?:(?!\w)|\b(?=\w)){}(?:(?<=\w)\b|(?<!\w))'.format(re.escape('Sortes\index[persons]{Sortes}')), 'test Sortes\index[persons]{Sortes} test')
      ログイン後にコピー
  • 明確な単語境界:

    • 一致の両側に単語文字が存在しないことを厳密に要求するには、明確な単語境界を使用します:

      re.search(r'(?<!\w){}(?!\w)'.format(re.escape('Sortes\index[persons]{Sortes}')), 'test Sortes\index[persons]{Sortes} test')
      ログイン後にコピー
  • 非 Word を明示的に処理する境界:

    • W または $ を使用して単語以外の境界を明示的に処理します。たとえば、

      re.search(r'\b' + re.escape('Sortes\index[persons]{Sortes}') + '(\W|$)', 'test Sortes\index[persons]{Sortes} test')
      ログイン後にコピー

さらに、単語の境界を定義する際の柔軟性を高めるために、否定的なルックアラウンドの使用を検討してください。たとえば、単語文字が現在の位置の直前にある場合、(?

以上がPython の単語境界を使用して文字列と特殊文字を確実に一致させるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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