正規表現における \b の理解

一个新手
リリース: 2017-10-20 11:11:24
オリジナル
7210 人が閲覧しました

b は単語の境界を設定するために使用されます。単語 (文字、数字、またはアンダースコアで構成される) の先頭または末尾と一致します (一致が開始されるとき、単語の前に w が存在することはできません。一致が終了するとき、単語の後に w が存在することはできません)。式内の特定の文字または文字列の前に記述された場合は、この文字または文字列の前に w に対応する文字が存在できないことを意味し、文字の後に記述された場合は、この文字または文字列の後に w に対応する文字が存在できないことを意味します。弦。 したがって、文字の前後に b を 1 つだけ配置することも、2 つ配置することもできます (つまり、文字の前後に w に対応する文字が存在することはできません)。

最初に正しい状況を見てください

図 1
注: 1. b が英数字またはアンダースコアで構成されていない単語を表す場合、その式は間違って定義されており、それに一致する文字列は存在しません。図 2 に示すように:

図 2

2. ターゲット文字列は、前後のスペース (スペース、W など) を除き、個々の単語のみに一致します。図 1 では、「Russell」の文字はカウントされません (テスト ツールでは青い背景のパディングが表示されません)。 目的: 独立した単語または文字列の一部と一致するビジネス ルールは、「Russell」という単語が独立して出現するすべての場所を検索することです。たとえば、式 bRusselllb は、Russell123abc が一致しないことを意味します。これは、Russell の後に文字、数字、アンダースコアが続くことがあってはならないためです。Russell 123abc と Russell@123abc は両方とも一致します。 3. 特別な状況。矛盾した式の定義。

b は、文字、数字、またはアンダースコアで構成される単語を制限するためにのみ使用されます。

式 b の後に他の式がある場合、式 b の後の式は、w または w コンテンツ内であってはなりません。たとえば、bhibnihao という表現は、単語 hi の前後に w の内容を含めることはできず、ターゲット文字列には hi が必要であり、hi の後に「nihao」文字が続くことを意味します。つまり、この式の定義は自己矛盾しています。

理由: b の定義によれば、b はターゲット文字列が次の条件下で一致することを保証するだけです: b の前後の文字には w を含めることはできないため、非 w (または W) 文字は b の前後で一致します。ここでは、w 以外の文字と一致する必要があるため、通常のルールのサブテキストですでに述べられていることに注意してください。b と一致する文字は、w 以外の文字で囲まれなければならないため、他の非 w 式はその後に追加する必要があります。 b 式と一致する可能性があります。
したがって、次のような正規表現は決して一致しません: bhibnihao ターゲット文字列 hinihao hi nihao hi*nihao hi @#$nihao 。 。 。
bhib では、hi の前後に英数字や下線文字を含めることはできず、hi の後に nihao 文字列が続く必要があるためです。したがって、hi! の前後にスペースを入れることができます。 @#¥%やnihaoなどの特殊文字は式中のhiの直後に定義されているため、この正規表現に一致する対象文字列は存在しません。



方法: 規則性を定義するとき、この非 w を規則性で考慮して (式に書き込む)

、規則性を bhibW+nihao に変更すると、hinihao hi nihao hi になります。 @nihao こんにちは! @#$ nihao

最後の3つはすべて一致します

以上が正規表現における \b の理解の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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