正規表現についての簡単な話、正規表現
1. 正規表現とは何ですか?
簡単に言うと、正規表現(正規表現)は文字列のマッチングを処理するための言語です。
正規表現は文字列一致パターンを記述します。これを使用して、文字列に特定の部分文字列が含まれているかどうかを確認し、一致した部分文字列に対して「削除」または「置換」操作を実行できます。
2. 正規表現の適用
正規表現は実際の開発プロセスにおいて非常に実用的であり、いくつかの複雑な文字列処理の問題を迅速に解決できます。以下に正規表現のアプリケーションをいくつか簡単に分類します。
最初のタイプ: データ検証
たとえば、文字列が正しいメール、電話、IP などであるかどうかを確認したい場合、正規表現を使用すると非常に便利です。
2 番目のタイプ: コンテンツ検索
たとえば、Web ページから画像を取得する場合は、正規表現を使用して正確に一致させることができます。
3 番目のタイプ: コンテンツの置換
たとえば、携帯電話番号の真ん中の 4 桁を非表示にして、このパターン (123****4567) に変更したい場合は、正規表現を使用すると非常に便利です。
3. 正規表現の内容とは
以下に正規表現について簡単に紹介します。
1. 正規表現のいくつかの重要な概念
部分表現: 正規表現において、「()」で囲まれた内容が使用される場合、それを「部分表現」と呼びます
- キャプチャ: 部分式と一致した結果は、システムによってバッファーに配置されます。このプロセスは「キャプチャ」と呼ばれます
。
- 後方参照: 「n」を使用します。n は数字であり、参照の前の特定のバッファー間の内容を示します。これを「後方参照」と呼びます
-
2. 数量修飾子
X+ 意味: 1 つ以上
- X* は 0 以上を表します
- ×? 表す: 0 または 1
- X{n} の意味: n
- X{n,} は次を表します: 少なくとも n
- X{n,m} は次のことを意味します: n から m まで、貪欲な原則は、最後に 1 を追加すると可能な限り多く一致しますか? 、それなら不欲主義です
-
注: X は検索する文字を表します
3. キャラクター修飾子
d の意味: 数字 [0-9] と一致します
- D は次を表します: 数字以外の文字 [^0-9] と一致します
- w の意味: アンダースコア [0-9a-zA-Z_] を含む単語文字に一致します
- W の意味: 単語以外の文字 [^0-9a-zA-Z_] に一致します
- s の意味: 任意の空白文字、スペース、復帰文字、タブ文字と一致する
- S の意味: 空白以外の文字と一致する
- を表します: 任意の 1 文字と一致します
-
その他、以下の種類があります:
範囲文字: [a-z]、[A-Z]、[0-9]、[0-9a-z]、[0-9a-zA-Z]
任意の文字: [abcd]、[1234]
含まれない文字: [^a-z]、[^0-9]、[^abcd]
4. ロケーター
^ 意味: 始まりのロゴ
- $ 意味: 終了マーク
- b は単語の境界を表します
- B は非単語境界を表します
-
5. エスケープ文字
特定の特殊文字と一致するために使用されます
| 複数のルールに一致する可能性があります
(?=): 前方参照: 指定された内容で終わる文字列と一致します
- (?!): 否定検索: 指定された内容で終わらない文字列と一致します
- (?:): 選択された一致のコンテンツをバッファーに入れません
-
4. Javascriptでの正規表現の使い方
JavaScript で正規表現を使用するには 2 つの方法があります:
最初の方法: RegExp クラスを使用する
提供されるメソッドは次のとおりです:
test(str): 文字列マッチングでパターンに一致する文字列があるかどうかを確認し、true/falseを返します
- exec(str): 一致するパターンに一致する文字列を返します。存在しない場合は、null を返します。
- //正規表現に部分式がある場合、execメソッド使用時
///返されるものは次のとおりです: result[0] = 一致する結果、result[1] = 部分式 1 の一致する結果...
2 番目の方法: String クラスを使用します
提供されるメソッドは次のとおりです:
検索: パターンに一致する文字列が出現する位置を返します。出現しない場合は、-1を返します
match: 一致するパターンに一致する文字列を返します。存在しない場合は、null を返します。
- replace: 一致するパターンに一致する文字列を置換します
- 分割: 区切り文字として一致するパターンを持つ文字列を分割し、配列を返します
-
5. PHP での正規表現の使い方-
PHP では正規表現を使用する関数が 2 つあります:
最初の関数は: Perl 正規表現関数です
提供されるメソッドは次のとおりです:
- preg_grep -- パターンに一致する配列セルを返します
- preg_match_all -- グローバル正規表現マッチングを実行します
- preg_match -- 正規表現のマッチング
- preg_quote -- 正規表現文字をエスケープする
- preg_replace_callback -- コールバック関数を使用して正規表現の検索と置換を実行します
- preg_replace -- 正規表現の検索と置換を実行します
- preg_split -- 正規表現を使用して文字列を分割します
2 つ目は: POSIX 正規表現関数です
提供されるメソッドは次のとおりです:
- ereg_replace -- 正規表現を置換します
- ereg -- 正規表現マッチング
- eregi_replace -- 大文字と小文字を区別しない置換正規表現
- eregi -- 大文字と小文字を区別しない正規表現のマッチング
- split -- 正規表現を使用して文字列を配列に分割します
- spliti -- 正規表現を使用して、大文字と小文字を区別せずに文字列を配列に分割します
- sql_regcase -- サイズに依存しない一致のための正規表現を生成します
6.まとめ
正規表現は特定の機能を実装するためのツールです:
1.強力な機能
正規表現内のさまざまな修飾子のさまざまな組み合わせにより、さまざまな機能が実現されます。複雑な関数を実装するには、それを正確に一致させる方法が必要になることがあります。
2. シンプルで便利
通常、文字列コンテンツを検索するときは、特定の文字列のみを検索できますが、正規表現を使用すると、あいまい検索を実行できます。これにより、より高速で便利になり、正規表現文字列のみが必要になります。
3. 基本的にすべての言語がサポートされています
現在、JAVA、PHP、JavaScript、C#、C++などの主流言語はすべて正規表現をサポートしています。
4. 学ぶのは簡単、応用は奥深い
正規表現を学ぶのは早くて簡単ですが、実際の開発において効率的で正確な正規表現を記述するには、依然として長い期間の試行と蓄積が必要です。
正規表現は、簡単な方法で強力な機能を実現するために携帯電話番号やメールアドレスなどを決定するために js でよく使用されます
記号の説明
文字の説明
\ 次の文字を特殊文字またはリテラル文字としてマークします、後方参照、または 8 進エスケープ文字。たとえば、「n」は文字「n」と一致します。 「\n」は改行文字に一致します。シーケンス '\\' は "\" に一致し、"\(" は "(" に一致します。
^ は入力文字列の先頭に一致します。 RegExp オブジェクトの Multiline プロパティが設定されている場合、^ は '\n' または ' にも一致します。 \r ' の後。
$ は入力文字列の末尾に一致します。RegExp オブジェクトの Multiline プロパティが設定されている場合、$ は前の部分式と 0 回一致します。たとえば、zo* は「z」および「zoo」に一致します。たとえば、「zo+」は前の部分式に 1 回以上一致します。 + {1,} と同等。たとえば、「do(es)?」は「do」または「. Does」と一致します。 do".? {0,1} と同等です。
{n} n は負ではない整数です。特定の n 回一致します。たとえば、「o{2}」は「Bob」「o」と一致できませんが、一致することはできます。 「food」の 2 つの o に一致します。
{n,} n は負ではない整数です。たとえば、「o{2,}」は「Bob」の ' に一致しますが、「foooood」のすべての o に一致します。 'o{1,}' は 'o+' と等価です。 'o{0,}' は 'o*' と等価です。ここで、n ? の間に他のリミッター (*、+、?、{n) が続く場合、マッチング モードは非貪欲です。非貪欲モードでは、検索された文字列ができるだけ少なく一致しますが、デフォルトの貪欲モードでは、文字列「oooo」の場合、単一の「o」が一致します。 'o+' は「\n」を除く任意の 1 文字と一致します。「\n」を含む任意の文字と一致するには、「[.\n]」のようなパターンを使用します。たとえば、次のようになります。 z...全文>>
正規表現とは何ですか?例を教えてください
。