問題:
正規表現を使用して文字列内の単語全体を照合するのは複雑な場合があります単語がスペースで区切られ、句読点がある場合。この質問では、複数の一致パターンを必要とせずに単語全体を一致させるプロセスを簡素化する方法を探ります。
単語の境界について:
単語全体を一致させる鍵は、次の使用にあります。 「単語境界」(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 サイトの他の関連記事を参照してください。