ホームページ > バックエンド開発 > PHPチュートリアル > 正規表現内の括弧の曖昧さ。正規表現の一致する括弧。

正規表現内の括弧の曖昧さ。正規表現の一致する括弧。

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-07-29 08:48:35
オリジナル
1372 人が閲覧しました

正規表現のかっこには次の意味があります

  • 量指定子の範囲を制限します
  • 複数選択構造の範囲を制限します
  • 後方参照のためにテキストをキャプチャします
  • グループキャプチャ
  • グループ化のみでキャプチャはしません
  • 見た目先へ

1. 量指定子の範囲を制限する

2. 複数選択構造の範囲を制限する

1

2

3

varreg1 = /(マッツ)?/; 0 または 1 マツ

reg2 = /(マッツ)+/; 1 つ以上の Matzvarreg3 = /(マッツ)*/

// 0 以上の Matzvar

12登録 = /(マッツ|アイヒ)/reg.test(

3

4

varreg.test(

'マッツ'

reg.test('Matz') // => true

reg.test('Eich'reg.test(

'Eich'

reg.test('John') // => true

'ジョン')

// => false

reg.test(

3. 後方参照用にテキストをキャプチャ

1
2

var345

6reg.test('boy'

reg.test('boyboy'登録 = /(男の子)1/// /boyboy/

varreg.test(

'boy'

reg.test('boygirlboygirl') // と同等 => false

'ボーイボーイ')

// =>本当

2reg2.test(mobile)
登録 /(男の子)(女の子)12/

reg.test(

'男の子女の子男の子女の子'

)

// => true

4. グループキャプチャ

1

3var4

5

var678

9 str.replace(reg1, 101112

13var14

var reg1 = /(d{3}) (d{3})/'13522722724'

reg2.test(mobile)

RegExp. 

str = RegExp. '111 222'

RegExp. str.replace(reg1, '$2 $1'

)var// => '222 111' 、ここで $2 と $1 には一致する文字列

var reg2 が格納されることに注意してください。 = /(d{3})(d{4})(d{4})/'13522722724'

mobile.replace(reg3, モバイル = '13522722724'

RegExp.$1

// => 135

正規Exp.$2 // =>2724

// => 2272

正規Exp.$3

varreg3 = /(d{3})(d{4})(d{4})/

reg.test('13522722724')

RegExp. モバイル =

'13522722724'
mobile.replace(reg3, '$1 $2 $3'

)

// => '135 2272 2724'

5. キャプチャせずにグループ化のみ("?:"と一緒に)

1
2

var3

reg.test('John' 登録 = /(?:d+)/

reg.test(reg.test('13522722724')

reg.test(RegExp.$1 // => '' 一致した要素を保存しないでください

長い正規表現では、後方参照が必要ない場合、キャプチャなしのグループ化を使用する必要があります。 RegExp. 6.先読み (「?=」を使用)

先読みは、一部の文字を前方に移動するように指示しますが、位置は移動しません。テキスト内の特定の位置のみに一致します。
🎜🎜1🎜🎜2🎜🎜3🎜🎜4🎜🎜5🎜🎜🎜🎜🎜🎜reg = /(ジョン) (?=Resig)/🎜🎜🎜🎜reg.test(🎜🎜'ジョン'🎜🎜) 🎜🎜// => false🎜🎜🎜🎜reg.test(🎜🎜'ジョン バッカス🎜🎜)🎜🎜// => false🎜🎜🎜🎜reg.test(🎜🎜'ジョン レイスグ🎜🎜)🎜🎜// => true🎜🎜🎜🎜RegExp.$1 🎜🎜// =>「ジョン」、これは「ジョン・レジグ」ではないことに注意してください🎜🎜🎜🎜🎜🎜🎜

以下は、先読みを使用して携帯電話番号をフォーマットする小さな関数です

1

2

3

4

5

6

7

8

9

/*

 /*

 * 個別の携帯電話番号

 */

function* 13522722724 -> 135 2272 2724

    var'0'*/機能).split('')

    arr.shift()

    return arr.join('')

}

別のモバイル(番号) {
var

arr = (

'0'

🎜+ num ).replace(/(d{4})(?=d)/g,🎜🎜"$1 "🎜🎜).split(🎜🎜"🎜🎜)🎜🎜🎜🎜 🎜🎜arr.shift()🎜🎜🎜🎜 🎜🎜return🎜 🎜arr.join(🎜🎜 🎜🎜" )🎜🎜🎜🎜} 🎜🎜🎜🎜🎜🎜🎜🎜🎜 🎜 上記では、正規表現と括弧を含む正規表現の括弧の曖昧さを紹介しましたが、PHP チュートリアルに興味のある友人に役立つことを願っています。 🎜 🎜 🎜
関連ラベル:
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート