ホームページ  >  記事  >  ウェブフロントエンド  >  事前定義されたクラスの分析と JS 正規表現の境界についての深い理解

事前定義されたクラスの分析と JS 正規表現の境界についての深い理解

不言
不言オリジナル
2018-07-11 09:37:451871ブラウズ

この記事では、JS 正規表現を深く理解するための事前定義されたクラスと境界の分析を主に紹介します。必要な友人に参照していただけるように共有します。数式は、一般的な文字クラスと一致する事前定義されたクラスを提供します

CharacterEquivalence class.[^rn][0-9][^0-9][tnx0Bfr][^tnx0Bfr][a-zA-Z_0-9] [ ^a-zA -Z_0-9] 事前定義されたクラスを使用すると、ab+数値+任意の文字の一致など、ターゲットを迅速に一致させることができます。文字クラスと範囲クラスを使用するには、大量のコードを記述する必要があります。事前定義されたクラスの場合は、次のように記述するだけです:
/ab\d/
Boundary
意味
キャリッジリターンとラインフィードを除くすべての文字 d
数字 D
数字以外の文字 s
空白文字 S
空白以外の文字 w
単語文字 (文字、数字、アンダースコア) W
非単語文字

正規表現では、よく使用される境界一致文字もいくつか提供されています

Characterの意味^xxxで始まるxxxで終わる単語境界非単語境界単語の境界は、文字が次のような場合に便利です単語の境界と単語以外の境界
$
b
B

場合によっては、文内の is の単語と一致させたいが、現時点では単語内の is の文字と一致させたくないことがあります。 、単語の境界を使用すると、この問題を簡単に解決できます。 質問:

let text = 'This is a boy'

let reg1 = /is/g

let reg2 = /\bis\b/g

text.replace(reg1, 'IS')    // 没有使用单词边界\b区分,结果为:ThIS IS a boy

text.replace(reg2, 'IS')    // 使用了单词边界进行区分,结果为:This IS a boy

そして、単語の末尾のみを一致させたい場合はどうすればよいですか?現時点では、単語の境界と単語以外の境界を賢く組み合わせることができます:

let text = 'This is a boy'

let reg3 = /\Bis\b/g

text.replace(reg3, 'IS')    // ThIS is a boy

^ と $ - 始まりと終わり

多くの用途では、先頭または末尾の文字を一致させる必要があるため、^ を使用します。 code> と $ は、この問題を完全に解決できます:

let text = '@123@abc@'

let reg1 = /@/g

text2.replace(reg1, 'Q')    // 没有使用^和$,匹配了所有的@,结果为:Q123QabcQ

let reg2 = /^@/g

text.replace(reg2, 'Q')     // 使用^匹配开头的@,结果为:Q123@abc@

let reg3 = /@$/g

text.replace(reg3, 'Q')     // 使用$匹配结尾的@,结果为:@123@abcQ

ヒント: 実際の使用では、^ を一致する項目の前に、$ を記述する必要があります。 をアンロードする必要があります。

複数行の場合は ^ と $^$可以完美的解决这个问题:

let text = '@123\n@456\n@789'

let reg1 = /^@\d/g

text.replace(reg1, 'Q')      
/*
    由于换行实际上只是一个换行符字符,在正常模式下,依然看做一段字符
    结果为:
    Q23
    @456
    @789
*/

let reg2 = /^@\d/gm

text.replace(reg2, 'Q')
/*
    添加了m进入多行模式:
    结果为:
    Q23
    Q56
    Q89
*/

tips:实际使用中^需要写在匹配项的前方,而$需要卸载匹配项的后方

在多行的情况下使用^和$

在多行的情况下,使用m

を使用します。 複数行の場合は m を使用して複数行モードに入ります。各行の先頭と末尾の一致する文字を一致させるには:

rrreee

以上がこの記事の全内容です。その他の関連コンテンツについては、PHP 中国語 Web サイトをご覧ください。

関連する推奨事項:

JS 正規表現の範囲クラスの分析についての深い理解

JS 正規表現のメタキャラクターと文字クラスの分析についての深い理解

🎜

以上が事前定義されたクラスの分析と JS 正規表現の境界についての深い理解の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。