正規表現。正規表現とも呼ばれます。 (英語: Regular Expression、コード内では regex、regexp、または RE と略されることがよくあります)、コンピューター サイエンスの概念。通常のテーブルは、特定のパターン (ルール) に一致するテキストを取得および置換するために使用されます。
正規表現は、文字列操作のための論理式です。正規表現は、いくつかの事前定義された特定の文字とこれらの特定の文字の組み合わせを使用して、「ルール文字列」を形成します。この「ルール文字列」は、文字列のフィルタリング ロジックを表現するために使用されます。
多くのプログラミング言語は、正規表現を使用した文字列操作をサポートしています。たとえば、Perl には強力な正規表現エンジンが組み込まれています。正規表現の概念は、もともと Unix のツール ソフトウェア (sed や grep など) によって普及しました。正規表現は「regex」と略されることが多く、単数形には regexp、regex が含まれ、複数形には regexps、regexes、regexen が含まれます。
最初の正規表現の例!
インスタンス
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>PHP中文网教程(php.sn)</title> </head> <body> <script> var str = "abc123def"; var patt1 = /[0-9]+/; document.write(str.match(patt1)); </script> </body> </html>
インスタンスの実行 »
[インスタンスの実行]ボタンをクリックして、オンライン インスタンスを表示します
ヒント: 正規表現チュートリアルは、初心者から上級者まで正規表現の知識を学ぶのに役立ちます。ご質問がある場合は、PHP 中国語 Web サイト 正規表現コミュニティ にアクセスして質問してください。熱心なネチズンが答えてくれます。
正規表現機能
非常に柔軟、論理的かつ機能的;
複雑な制御を迅速に実現非常に簡単な方法で文字列を取得します。
初めての方にとっては、これは比較的わかりにくいかもしれません。
正規表現の主なアプリケーションオブジェクトはテキストであるため、有名なエディタEditPlusからMicrosoft Word、Visual Studioなどに至るまで、さまざまなテキストエディタで使用されています。テキストコンテンツを処理するための正規表現。
目的
正規表現と別の文字列を指定すると、次の目的を達成できます:
指定された文字列が正規に準拠しているかどうかフィルタリング ロジック式 (「マッチング」と呼ばれます)
では、正規表現を使用して、文字列から必要な特定の部分を取得できます。
通常のエンジン
通常のエンジンは主に 2 つのカテゴリに分類できます。
1 つは DFA、
- #1 つは NFA です。
POSIX NFA エンジンは従来の NFA エンジンと似ていますが、可能な限り最長の一致が見つかるまでバックトラックを続ける点が異なります。したがって、POSIX NFA エンジンは従来の NFA エンジンよりも低速であり、POSIX NFA を使用する場合は、長い一致検索ではなく短い一致検索をサポートするためにルックバック検索の順序を変更したくないでしょう。
DFA エンジンを主に使用するプログラム:
awk,egrep,flex,lex,MySQL,Procmail等;
従来の NFA エンジンを主に使用するプログラム:
GNU Emacs,Java,ergp,less,more,.NET语言,PCRE library,Perl,PHP,Python,Ruby,sed,vi;
主に POSIX NFA エンジンを使用するプログラム以下が含まれます:
mawk,Mortice Kern Systems’ utilities,GNU Emacs(使用时可以明确指定);
DFA/NFA ハイブリッドを使用するエンジンもあります:
GNU awk,GNU grep/egrep,Tcl。
NFA と DFA の作業の違いを簡単に説明する例を挙げます:
たとえば、「this is yansen's blog」という文字列、正規表現があります。式は /ya(msen|nsen|nsem)/ です (式は気にしないでください。これはエンジン間の動作の違いを説明するためだけです)。 NFA は次のように機能します。まず、文字列内で y を検索し、その後に a が続くかどうかを照合します。a の場合は、引き続き m が続くかどうかを検索します。そうでない場合は、その後に n が続くかどうかを照合します ( msen 選択ブランチはこの時点で削除されます)。
次に、その後に s、e が続くかどうかを確認し、n であるかどうかをテストします。n であれば、一致は成功です。そうでない場合は、m であるかどうかをテストします。なぜm? NFA は正規表現に基づいて動作し、文字列を繰り返しテストするため、同じ文字列が何度もテストされる可能性があります。
これは DFA の場合には当てはまりません。DFA は、この中で t から始まる順序で y を検索し、y を見つけます。その後に a が続くことがわかっている場合は、式に a があるかどうかを確認し、たまたまここがあります。次に、文字列 a の後に n が続き、DFA は式を順番にテストします。この時点で、msen は要件を満たしていないため、削除されます。 nsen と nsem が要件を満たしているため、DFA は文字列を順番にチェックします。sen の n が検出されると、nsen ブランチのみが要件を満たし、一致は成功します。
2 つのエンジンはまったく異なる方法で動作していることがわかります。1 つ (NFA) は式指向で、もう 1 つ (DFA) はテキスト指向です。一般的に、DFA エンジンは検索が高速です。ただし、NFA は式指向で操作が簡単なため、ほとんどのプログラマーは NFA エンジンを好みます。どちらのエンジンにも独自の長所があり、実際の引用はニーズと使用する言語によって異なります。
この正規表現チュートリアル マニュアルの内容
この正規表現チュートリアルでは、正規表現の構文、正規表現のメタキャラクタ、正規表現、式演算子の優先順位、正規表現など、正規表現の基本および高度な知識をすべてカバーします。式一致ルールなど。
ヒント: このチュートリアルの各章には、多くの正規表現の例が含まれています。[例の実行] ボタンを直接クリックすると、結果をオンラインで表示できます。これらの例は、正規表現をより深く理解するのに役立ちます。
その他の正規表現関連の学習参照リソース
このページの右側にある知識の拡張に加えて、次のリソースもすべての人向けに選択されています
最新章
- 正则表达式 - 示例 2016-10-18
- 正则表达式 - 匹配规则 2016-10-18
- 正则表达式 - 运算符优先级 2016-10-18
- 正则表达式 - 元字符 2016-10-18
- 正则表达式 - 语法 2016-10-18
- 正则表达式 - 简介 2016-10-18
- 正则表达式 - 教程 2016-10-18
関連コース
- コンピュータネットワークの知識収集 2022-09-30
- ブール教育 HTTP プロトコルのビデオ チュートリアル 2022-04-14
- ブール教育用正規表現ビデオ チュートリアル 2022-04-18
- ブール型教育デザイン パターンのビデオ チュートリアル 2022-04-21
- コンピュータネットワークの概要 ― プログラマが身につけるべき基礎知識 2021-11-22
- プログラマー必携のチュートリアル―HTTPプロトコルを詳しく解説 2021-11-19
- Web 開発に不可欠な HTTP プロトコルの 1 時間の包括的な入門 2021-11-26
- 90 分で Web の基礎をマスターする (ネットワーク プロトコル | HTTP | Web サーバー) 2021-12-10