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