ホームページ > 記事 > ウェブフロントエンド > 事前定義されたクラスの分析と JS 正規表現の境界についての深い理解
この記事では、JS 正規表現を深く理解するための事前定義されたクラスと境界の分析を主に紹介します。必要な友人に参照していただけるように共有します。数式は、一般的な文字クラスと一致する事前定義されたクラスを提供します
Character意味 | ||
---|---|---|
キャリッジリターンとラインフィードを除くすべての文字 | d | |
数字 | D | |
数字以外の文字 | s | |
空白文字 | S | |
空白以外の文字 | w | |
単語文字 (文字、数字、アンダースコア) | W | |
非単語文字 | 事前定義されたクラスを使用すると、ab+数値+任意の文字の一致など、ターゲットを迅速に一致させることができます。文字クラスと範囲クラスを使用するには、大量のコードを記述する必要があります。事前定義されたクラスの場合は、次のように記述するだけです: |
正規表現では、よく使用される境界一致文字もいくつか提供されています
Character$ | |
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 正規表現の境界についての深い理解の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。