基本概念
正規表現とは、通常の文字(AからZの間の文字)と特殊文字(「メタチャーズ」と呼ばれる)を含むテキストパターンです。このパターンは、テキストを検索するときに一致する1つ以上の文字列を説明しています。
まず、いくつかの正規表現編集者が推奨されます
debuggex:https://www.debuggex.com/
Pyregex:http://www.pyregex.com/
regexper:http://www.regexper.com/
正規表現は、検索および文字列交換操作です。正規表現は、次のために使用されるなど、テキストエディターで広く使用されています。
[コピー]テキストに指定された特性単語が含まれているかどうかを確認します
一致する特徴的な単語がテキストのどこにあるかを調べます
テキストから情報を抽出します。次のようなものです。文字列のサブストリング
テキストを変更します
注:通常、正規表現は、2つのタスクに使用されます。1。検証、2。検索/交換。検証に使用する場合は、通常、検証する文字列全体を一致させるために ^と$を追加する必要があります。検索/交換時にこの制限を追加するかどうかは、検索要件によって異なります。さらに、前後に ^と$の代わりに /bを追加することもできます。少数を除き、この表にリストされている一般的な正規表現の前後に制限は追加されません。必要に応じて自分で処理してください。
優先順序
正規表現を作成した後、数学的な式のように評価できます。つまり、左から右、優先順位で評価できます。次の表には、最も優先度から最低の優先度までのさまざまな正規表現演算子の優先順位を示します。
| オペレーター | 説明する |
|---|---|
| / | 脱出シンボル |
| ()、(?:)、(?=)、[] | ブレースと四角い括弧 |
| *、 +、?、{n}、{n、}、{n、m} | 予選 |
| ^、$、 /anymetacharacter | 位置と順序 |
正規表現を作成します
正規表現を構築する方法は、数学的表現を作成する方法と同じです。つまり、複数のメタチャラクターと演算子を使用して小さな表現を組み合わせて、より大きな表現を作成します。
分離器のペア間に式パターンのさまざまなコンポーネントを配置することにより、正規表現を構築できます。
JScriptの場合、デリミッターはフォワードスラッシュ(/)文字のペアです。例えば:
/表現/
VBScriptの場合、一対の引用符( "")を使用して、正規表現の境界を決定します。例えば:
コードコピーは次のとおりです。
"表現"
例を参照してください
コードコピーは次のとおりです。
//アカウントが合法かどうかを一致させる(文字から始まり、5-16バイトが許可され、英数字のアンダースコアが許可されている
var re = new regexp( "^[a-za-z] [a-za-z0-9 _] {5,19} $");
if(re.test(aaaa)){
アラート( "正しい形式");
}それ以外{
alert( "format error");
}
正規表現のコンポーネントは、単一の文字、文字のセット、さまざまな文字、文字の間の選択、またはこれらすべてのコンポーネントの任意の組み合わせです。
一般的に使用される正規表現
漢字を一致させる正規表現:[/u4e00-/u9fa5]
コメント:中国語を一致させることは本当に頭痛がします、この表現で簡単に行うことはできます
ダブルバイト文字(漢字を含む)を一致させる:[^/x00-/xff]
コメント:文字列の長さを計算するために使用できます(ダブルバイト文字長メーター2、ASCII文字メーター1)
ブランクラインの一致する正規表現:/n/s*/r
コメント:空白行を削除するために使用できます
HTMLタグの一致する正規表現:<(/s*?)[^>]*>。*?<// 1> | <。*? />
コメント:オンラインで循環するバージョンはあまりにも悪いものであり、上記のバージョンは部品とのみ一致し、複雑なネストされたマーカーを使用することはまだ無力です。
開始と終了のホワイトスペース文字に一致する正規表現: ^/s*|/s*$
コメント:ラインの最初と端(スペース、タブ、ページブレイクなどを含む)でホワイトスパース文字を削除するために使用できます。
電子メールアドレスに一致する正規表現:/w+(]/w+ )*//w+( [ - 。]
コメント:フォームを検証するときは非常に実用的です
URLの正規表現マッチング:[a-za-z]+:// [^/s]*
コメント:オンラインで流通するバージョンの機能は非常に限られており、上記は基本的にニーズを満たすことができます
アカウントが合法かどうか(文字から始まり、許可された5-16バイト、許可されている英数字のアンダースコア): ^[a-za-z] [a-za-z0-9 _] {4,15} $
コメント:フォームを検証するときは非常に実用的です
国内の電話番号を一致させる:/d {3} - /d {8} |/d {4} - /d {7}
コメント:マッチングフォームは次のとおりです:0511-4405222または021-87888822
一致するtencent qq番号:[1-9] [0-9] {4、}
コメント:Tencent QQ番号は10,000から始まります
中国の郵便番号に一致する:[1-9]/d {5}(?!/d)
コメント:中国の郵便番号は6桁です
一致IDカード: /d {15} | /d {18}
コメント:中国のIDカードは15桁または18桁です
一致IPアドレス:/d+/./d+/./d+/./d+
コメント:IPアドレスを抽出するときに役立ちます
特定の数値を一致させます
[コピー] ^[1-9]/d*$ //正の整数と一致します
^ - [1-9]/d*$ //ネガティブ整数を一致させます
^ - ?[1-9]/d*$ //整数を一致させます
^[1-9]/d*| 0 $ //非陰性整数を一致させる(正の整数 + 0)
^ - [1-9]/d*| 0 $ //非陽性整数と一致する(負の整数 + 0)
^[1-9]/d*/。/d*| 0 /./ d*[1-9]/d*$ //正の浮動小数点数を一致させます
^ - ([1-9]/d*/。/d*| 0/./ d*[1-9]/d*)$ //ネガティブフローティングポイント番号を一致させます
^ - ?([1-9]/d*/。/d*| 0/./ d*[1-9]/d*| 0?/。0+ | 0)$ //フローティングポイント番号を一致させます
^[1-9]/d*/。/d*| 0/./ d*[1-9]/d*| 0?/。0+ | 0 $ //非陰性フローティングポイント番号(正の浮動小数点数 + 0)
^( - ([1-9]/d*/。/d*| 0/./ d*[1-9]/d*))| 0?/。0+ | 0 $ //非陽性フローティングポイント番号(ネガティブフローティングポイント番号 + 0)
コメント:大量のデータを処理する場合に役立ち、詳細に適用するときにそれを修正するように注意してください。
特定の文字列を一致させます
[コピー]^[a-za-z]+$ // 26の英語文字で構成される文字列を一致させます
^[az]+$ // 26の英語の手紙の大文字で構成される文字列を一致させる
^[az]+$ // 26の英語の文字小文字で構成される文字列を一致させる
^[a-za-z0-9]+$ //数字と26の英語の文字で構成される文字列に一致します
^/w+$ //数字、26の英語の手紙またはアンダースコアで構成される文字列を一致させる
コメント:最も基本的で最も一般的に使用される表現のいくつか
マインドマップ