1. ホーム
  2. Web プログラミング
  3. 正規表現

めくるめくメタキャラクタを使った正規表現

2022-01-18 05:22:05

0.以前に書かれたもの

開発現場では、メールボックスや携帯電話の番号確認、テキストの一括検索・置換操作などに正規表現がよく使われます。

ほとんどの学生は、要件を満たすと、まずブラウザを開いて検索する必要があります。 メールボックス 正規表現 書き方 要求を受けたとき、ほとんどの学生が最初にすることは、ブラウザを開いて検索することです。{{strong mailbox regular expression how to write /strong }, then Ctrl C + V, test a few conditions without problems, and submit it, there is a problem and do not know how to modify it, but then ask for help enthusiastic users.

この記事では、主に正規表現の基本的な使用方法を理解するためにあなたを取るために、予備的な理解は、正規は、もはや混乱の顔を参照してください。

例えば、IPv4アドレスの正規表現。

コピーコード コードは以下の通りです。

^([1-9][0-9]? |1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\. (0|[1-9][0-9]? |1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$

この記事を読んでいない場合は、この式は少しめまいがする必要があります初めて見た、混乱の中で書かれているもの、心配しないで、あなたがそれらの一見複雑な式が、実際には、それであることがわかります学習した後。

この記事の主な内容のマインドマップは、で迅速なクエリのために続いて使用することができます。

1. 特殊な一文字

正規表現では、通常の文字も同じ意味を持ちます。 1 は、数字にマッチする 1 a は、文字にマッチすることができます。 a .

しかし、もっと多くの文字にマッチさせたい場合、すべての文字をリストアップすることはできず、時間がかかりすぎる。

. 改行以外のあらゆる文字にマッチするドット付きワイルドカードです。

\d 数字ワイルドカード、0-9の数字にマッチします。

\D Dが大文字の場合、数字以外なら何でもマッチします。これは \d の逆です。

\w 英数字のアンダースコアのワイルドカード、任意の英数字のアンダースコアにマッチします。

\W Wが大文字の場合、英数字でないアンダースコアにマッチします。

\s キャリッジリターン、改行、ページブレーク、タブなど、あらゆる空白文字を表すワイルドカード。

\S Sが大文字の場合、空白でない文字にマッチします。

ここまでで、特殊な一文字は網羅され、以下のようにまとめられる。

<イグ

2. 空白文字

空白文字は下図のように分類され、一般的には、以下のように使用します。 \s で十分であることを示す。

3. 範囲

|code と同じように、あるいは、あなたが考えていたような ab|bc はabまたはbcにマッチすることができます

[...] 複数選択可能、例 [abc] は、文字aにマッチするか、文字bまたはcにマッチします。

[a-z] は a と z の間の任意の要素にマッチします。 \w このワイルドカード文字は、次のように使用できます。 [a-zA-Z0-9_] です。 を表現するために

[^...] 逆、大括弧内の単一要素ではない

注:上記の式は一度に一つの要素にしかマッチしません。

4. 量子化

* アスタリスクは、0回から何回も出現することを表し、出現回数の制限はない。

+ プラス記号は、1回から複数回、つまり最低1回は出現することを意味します

? Httpプロトコルの規則性のように、0から1までの出現を表すクエスチョンマークを使用することができます。 Https? を示す

{m} は m 回の出現を意味します。 a{1} は、マッチングルールの中で文字aが1回だけ現れることを意味します。

{m,} は少なくとも m 回の出現を表します。 {0,} はアスタリスクと同等であり {1,} はプラス記号に相当する

{m,n} は、オカレンスmからnを表します。 {0,1} はクエスチョンマークと同等です

5. ハンズオン

さて、ここで冒頭の正規表現に戻り、見てみましょう。

コピーコード コードは以下の通りです。

^([1-9][0-9]? |1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\. (0|[1-9][0-9]? |1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$

ちょっとやそっとじゃ感じない、一緒に実装する以下のような、まずはルール。

  • IPv4アドレスの範囲は、次のように定義されます。 1.0.0.0 - 255.255.255.255 もちろん、プロの世界ではもっと厳しい定義があるはずなので、ここでは割愛します
  • 上記の範囲から、基本的なルールを導き出すことができます。 [1-255]. [0-255]. [0-255]. [0-255].
  • 下3桁が繰り返されているのがわかると思います . [0-255] を書き出せばよいのです。 [0-255] のルールに従えば、簡単です。
  • ^ そして $ は、行頭と行末を識別するために使用されますが、これについては次回に説明します

はじめに

1. 2桁の範囲を表現する方法

以上のことから、ある数字が次のように表現されることがわかります。 \d または [0-9] を表現する場合、0〜99のような複数桁の数字を表現したい場合はどうするか。

はこのように分割することができます、範囲は0-99、最小桁数は1、最大桁数は2、そして2桁のワイルドカードを使って表現することができます、わかりやすく美しくするために、ここでは**を使用します。 [0-9] は、**を表します。

と書き上げました。

コピーコード コードは以下の通りです。

0|[1-9][0-9]?

どこ 0 は数字の0を表し、00は除外されるため、そのような場合は [0-9][0-9]? を真ん中のorで囲んでいます。 |code に続いて [1-9][0-9]? は1〜99を意味します。 ? は0〜1倍を意味します。

2. 3桁の範囲を表現する方法

2桁のものが書けたら、3桁のものは簡単です。0〜255の範囲を書いてみよう。

ここで注意してください。

  • 数字が3桁になったとき、百の位は1か2しか選べない
  • 百の位が2のとき、十の位は0〜5までしか選べません。
  • 十の位が5の場合、一の位は0~5までしか選べません。

書くこと

コピーコード コードは以下の通りです。

0|[1-9][0-9]? |1[0-9][0-9]|2[0-4][0-9]|25[0-5]

0-255の範囲を書き込んだ後、0を取り除くと1-255の範囲になります。

コピーコード コードは以下の通りです。

[1-9][0-9]? |1[0-9][0-9]|2[0-4][0-9]|25[0-5]

3.組み合わせ

最後の組み合わせは、覚えておいてください {3} というのは、その文字や組み合わせが次のように3回出現することを意味します。

ただし . を使うことを忘れないでください。 \ をエスケープします。

コピーコード コードは以下の通りです。

^([1-9][0-9]? |1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\. (0|[1-9][0-9]? |1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$

作品は完成しています。スッキリして検証しているか。

6. 最後に書く

ここで、正規表現の基本的な使い方は終了です。もし質問があれば、私にコメントを残してください、ありがとうございます。

正規表現オンライン検証ツール。 https://regex101.com

この記事では、人をめまわせる正規表現のメタ文字について紹介しています。もっと関連する正規表現のメタ文字の内容は、BinaryDevelopの過去の記事を検索するか、以下の関連記事を引き続き閲覧してください。