正規表現を使用して文字列内の単語全体を効率的に照合するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-11-19 08:39:02
オリジナル
730 人が閲覧しました

How Can I Efficiently Match Whole Words in a String Using Regular Expressions?

正規表現を使用して動的に単語全体を照合する

問題:

正規表現を使用して文字列内の単語全体を照合するのは複雑な場合があります単語がスペースで区切られ、句読点がある場合。この質問では、複数の一致パターンを必要とせずに単語全体を一致させるプロセスを簡素化する方法を探ります。

単語の境界について:

単語全体を一致させる鍵は、次の使用にあります。 「単語境界」(b)。この特殊文字は、周囲の文字が単語以外の文字である単語を検索するように正規表現エンジンに通知します。したがって、b...|b は、単語以外の文字で囲まれた任意の単語と一致します。

単一式による実装:

<br>match_string = r'b' ワードr'b'<br>

このパターンを使用し、特殊文字をエスケープすることにより、周囲に句読点があるものも含め、単語全体を簡単に照合できます。

マッチング複数の単語全体:

複数の単語を単語全体として一致させる必要がある場合は、単語境界とパイプ演算子 (|) を使用した正規表現パターン:

<br>match_string = r'b(?:{word1})|b(?:{word2})|b( ?:{word3})b' # 「word1」、「word2」、および「word1」と一致するパターンの例"word3"<br>

このパターンは、文字列内であっても、指定された単語のみが単語全体として一致することを保証します。

単語の曖昧性と明確な単語境界:

一致する単語に特殊文字または特殊文字が含まれる可能性がある場合単語以外の文字で開始/終了する場合、明確な単語境界または空白境界を利用できます。

単語境界を使用する利点:

  • シンプルさ: 複数の一致の必要性を排除することで、正規表現パターンを簡素化します。
  • 効率: 一般に、単語境界を使用することは、複数の代替を含む複雑なパターンよりも効率的です。
  • 拡張性: パターンは簡単に変更できます単語全体のさまざまなセットに一致します。

サンプルコード:

<br>import re</p>
<p>string = "word hereword word, there word"<br>words = ["word", "hereword", 「そこ」]<br>match_pattern = r'b(?:{})b'.format('|'.join(words))</p>
<p>matches = re.findall(match_pattern, string)<br>print(matches) # 出力: [ 'word', 'hereword', 'word']<br>

単語の境界をテキストに組み込むことで、正規表現パターンを使用すると、周囲に句読点や特殊文字がある場合でも、文字列内の単語全体を効率的かつ正確に照合できます。

以上が正規表現を使用して文字列内の単語全体を効率的に照合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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