ホームページ バックエンド開発 PHPチュートリアル PHP 正規表現_PHP チュートリアル

PHP 正規表現_PHP チュートリアル

Jul 13, 2016 pm 05:47 PM
linux php 存在する 広く 応用 通常 現在のところ 表現 ソフトウェア

1. はじめに
現在、正規表現は、*nix (Linux、Unix など)、HP などのオペレーティング システム、PHP、C#、Java などの開発環境、および多くのアプリケーション ソフトウェアを含む多くのソフトウェアで広く使用されています。

正規表現を使用すると、強力な機能を簡単な方法で実現できます。シンプルで効果的でありながら強力であるために、正規表現コードはより難しく、習得するのが簡単ではないため、使い始めた後は、特定のリファレンスを参照して使用するのが比較的簡単で効果的です。

例: ^.+@.+\..+$

この種のコードを見て私は何度も怖くなってしまいました。おそらく多くの人がそのようなコードを怖がってしまうでしょう。この記事を読み続けると、このようなコードを自由に適用できるようになります。

2. 正規表現の歴史
正規表現の「祖先」は、人間の神経系がどのように機能するかについての初期の研究にまで遡ることができます。 2 人の神経生理学者、ウォーレン・マカロックとウォルター・ピッツは、これらのニューラル ネットワークを記述する数学的方法を開発しました。

1956 年、Stephen Kleene という数学者は、McCulloch と Pitts の初期の研究に基づいて「ニューラル ネットワーク イベントの表現」というタイトルの論文を発表し、正規表現の概念を導入しました。正規表現は、彼が「正規集合の代数」と呼ぶ式を記述するために使用されるため、「正規表現」という用語が付けられています。

この研究は、Unix の主な発明者である Ken Thompson による計算検索アルゴリズムを使用した初期の研究に適用できることが後に判明しました。正規表現を最初に実際に応用したのは、Unix の qed エディターでした。

彼らが言うように、残りは私たち全員が知っている歴史です。それ以来、正規表現はテキストベースのエディターや検索ツールの重要な部分となってきました。

3. 正規表現の定義
正規表現 (正規表現) は、文字列に特定の部分文字列が含まれているかどうかを確認したり、一致する部分文字列を置き換えたり、特定の文字列から特定の条件を満たす部分文字列を抽出したりするために使用できる文字列の一致パターンを記述します。

正規表現は、通常の文字 (a から z までの文字など) と特殊文字 (メタキャラクターと呼ばれる) で構成されるテキスト パターンです。正規表現は、文字パターンと検索文字列を照合するテンプレートとして機能します。

3.1 通常のキャラクター

メタキャラクターとして明示的に指定されていないすべての印刷文字と非印刷文字で構成されます。これには、すべての大文字と小文字のアルファベット、すべての数字、すべての句読点、および一部の記号が含まれます。

3.2 非印刷文字

cx x で指定された制御文字と一致します。たとえば、cM は Control-M または復帰文字と一致します。 x の値は、A ~ Z または a ~ z のいずれかでなければなりません。それ以外の場合、c はリテラルの「c」文字として扱われます。 f フォームフィードと一致します。 x0c および cL に相当します。 ん 改行文字と一致します。 x0a および cJ に相当します。 r 復帰文字と一致します。 x0d および cM に相当します。 す スペース、タブ、フォームフィードなどを含む任意の空白文字と一致します。 【fnrtv】に相当。 S 空白以外の文字と一致します。 [^ fnrtv] に相当します。 ち タブ文字と一致します。 x09 および cI に相当します。 v 垂直タブ文字と一致します。 x0b および cK に相当します。

3.3 特殊文字
いわゆる特殊文字は、特別な意味を持つ文字です。たとえば、上記の「*.txt」の * は、単に任意の文字列の意味を意味します。ファイル名に * が含まれるファイルを検索する場合は、* をエスケープする、つまり * の前に 1 を追加する必要があります。 ls*.txt。正規表現には次の特殊文字があります。

キャラクターシンボル 意味が含まれています
と言った を使用します。 * 前の部分式と 0 回以上一致します。* 文字と一致するには、*+ 前の部分式と 1 回以上一致します。 + 文字と一致するには、+. 改行文字 n を除く任意の 1 文字に一致します。 . に一致するには、.[ 角括弧式の始まりを示します。 [と一致させるには、[? 先行する部分式と 0 回または 1 回一致するか、非貪​​欲修飾子を指定します。 ? 文字に一致するには、? 次の文字を特殊文字、リテラル文字、後方参照、または 8 進エスケープ文字としてマークします。 ^ 角括弧式で使用されない限り、入力文字列の先頭と一致します。角括弧式で使用されている場合は、文字セットが受け入れられないことを示します。 ^ 文字そのものと一致させるには、^{ 修飾子式の始まりをマークします。 { と一致させるには、{| 2 つの項目から選択を示します。 | と一致させるには、|
キャラクター
$ RegExp オブジェクトの Multiline プロパティが設定されている場合は、$ 文字自体と一致するように $
() 部分式の開始と終了をマークし、後で使用するために部分式を取得するには、( と ) を使用します。
を使用します。
を使用します。
を使用してください。
]を使用します
を使用します。
を使用します。
を使用します
を使用します

3.4予選

修飾子は、一致を満たすために正規表現の特定のコンポーネントが何回出現する必要があるかを指定するために使用されます。 * または + または ? または {n} または {n,} または {n,m} の 6 種類があります。 *、+、および ? 修飾子はすべて、それらの後に ? を追加することで可能な限り多くのリテラルと一致するという点で貪欲です。

正規表現の修飾子は次のとおりです:

* 直前の部分式と 0 回以上一致します。たとえば、zo* は「z」と「zoo」に一致します。 * {0,}+ 前の部分式と 1 回以上一致します。たとえば、「zo+」は「zo」と「zoo」には一致しますが、「z」には一致しません。 + {1,} と同等? 前の部分式と 0 回または 1 回一致します。たとえば、「do(es)?」は「do」または「does」の「do」と一致します。 ? {0,1}{n} n は負ではない整数です。一致が n 回決定されました。たとえば、「o{2}」は「Bob」の「o」と一致することはできませんが、「food」の 2 つの o{n,} n は負ではない整数です。少なくとも n 回一致します。 {n,m} m と n は両方とも非負の整数であり、n

3.5 ロケーター

文字列または単語の境界を表すために使用されます。^ と $ はそれぞれ文字列の先頭と末尾を指し、b は単語の前または後ろの境界を表し、B は単語以外の境界を表します。修飾子はロケーターでは使用できません。


3.6

を選択

すべてのオプションを括弧で囲み、隣接するオプションを | で区切ります。ただし、括弧を使用すると、関連する一致がキャッシュされるという副作用が生じます。この場合、最初のオプションの前に ?: を使用すると、この副作用を排除できます。
このうち、?: は非キャプチャ要素の 1 つで、他の 2 つの非キャプチャ要素は ?= と ?! です。これら 2 つは前方参照であり、任意の括弧内の正規表現と一致します。検索文字列は正規表現パターンの任意の位置で一致します。これは、正規表現パターンに一致しない最初の位置で検索文字列と一致する否定先読みです。

3.7 後方参照

正規表現パターンまたはパターンの一部を括弧で囲むと、キャプチャされた各部分一致が正規表現パターンの左から右に保存されます。部分一致が格納されるバッファには、1 から始まり、最大 99 個の部分式まで連続した番号が付けられます。各バッファには、「n」を使用してアクセスできます。n は、特定のバッファを識別する 1 桁または 2 桁の 10 進数です。
非キャプチャ メタキャラクタ「?:」、「?=」、または「?!」を使用すると、関連する一致の保持を無視できます。

4. 各種演算子の動作優先順位

同じ優先度の操作は左から右に実行され、異なる優先度の操作は高から低に実行されます。さまざまな演算子の優先順位は高いものから低いものまで次のとおりです:


特殊文字 は言いました
に相当
に相当
には一致します。
キャラクターシンボル 説明説明
エスケープキャラクター
()、(?:)、(?=)、[] 丸括弧と角括弧
*、+、?、{n}、{n,}、{n,m} 予選
^、$、任意のメタ文字 位置と順序
| 「OR」演算


Lee.さんのコラムより抜粋

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/478463.html技術記事 1. はじめに 現在、正規表現は、*nix (Linux、Unix など)、HP およびその他のオペレーティング システム、PHP、C#、Java およびその他の開発環境など、多くのソフトウェアで広く使用されています。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Dockerデスクトップの使用方法 Dockerデスクトップの使用方法 Apr 15, 2025 am 11:45 AM

Dockerデスクトップの使用方法は? Dockerデスクトップは、ローカルマシンでDockerコンテナを実行するためのツールです。使用する手順には次のものがあります。1。Dockerデスクトップをインストールします。 2。Dockerデスクトップを開始します。 3。Docker Imageを作成します(DockerFileを使用); 4. Docker画像をビルド(Docker Buildを使用); 5。Dockerコンテナを実行します(Docker Runを使用)。

PHP:サーバー側のスクリプト言語の紹介 PHP:サーバー側のスクリプト言語の紹介 Apr 16, 2025 am 12:18 AM

PHPは、動的なWeb開発およびサーバー側のアプリケーションに使用されるサーバー側のスクリプト言語です。 1.PHPは、編集を必要とせず、迅速な発展に適した解釈言語です。 2。PHPコードはHTMLに組み込まれているため、Webページの開発が簡単になりました。 3。PHPプロセスサーバー側のロジック、HTML出力を生成し、ユーザーの相互作用とデータ処理をサポートします。 4。PHPは、データベースと対話し、プロセスフォームの送信、サーバー側のタスクを実行できます。

PHPとWeb:その長期的な影響を調査します PHPとWeb:その長期的な影響を調査します Apr 16, 2025 am 12:17 AM

PHPは過去数十年にわたってネットワークを形成しており、Web開発において重要な役割を果たし続けます。 1)PHPは1994年に発信され、MySQLとのシームレスな統合により、開発者にとって最初の選択肢となっています。 2)コア関数には、動的なコンテンツの生成とデータベースとの統合が含まれ、ウェブサイトをリアルタイムで更新し、パーソナライズされた方法で表示できるようにします。 3)PHPの幅広いアプリケーションとエコシステムは、長期的な影響を促進していますが、バージョンの更新とセキュリティの課題にも直面しています。 4)PHP7のリリースなど、近年のパフォーマンスの改善により、現代の言語と競合できるようになりました。 5)将来的には、PHPはコンテナ化やマイクロサービスなどの新しい課題に対処する必要がありますが、その柔軟性とアクティブなコミュニティにより適応性があります。

VSCODEに必要なコンピューター構成 VSCODEに必要なコンピューター構成 Apr 15, 2025 pm 09:48 PM

VSコードシステムの要件:オペレーティングシステム:オペレーティングシステム:Windows 10以降、MACOS 10.12以上、Linux Distributionプロセッサ:最小1.6 GHz、推奨2.0 GHz以上のメモリ:最小512 MB、推奨4 GB以上のストレージスペース:最低250 MB以上:その他の要件を推奨:安定ネットワーク接続、XORG/WAYLAND(Linux)

なぜPHPを使用するのですか?利点と利点が説明されました なぜPHPを使用するのですか?利点と利点が説明されました Apr 16, 2025 am 12:16 AM

PHPの中心的な利点には、学習の容易さ、強力なWeb開発サポート、豊富なライブラリとフレームワーク、高性能とスケーラビリティ、クロスプラットフォームの互換性、費用対効果が含まれます。 1)初心者に適した学習と使用が簡単。 2)Webサーバーとの適切な統合および複数のデータベースをサポートします。 3)Laravelなどの強力なフレームワークを持っています。 4)最適化を通じて高性能を達成できます。 5)複数のオペレーティングシステムをサポートします。 6)開発コストを削減するためのオープンソース。

VSCODEは拡張子をインストールできません VSCODEは拡張子をインストールできません Apr 15, 2025 pm 07:18 PM

VSコード拡張機能のインストールの理由は、ネットワークの不安定性、許可不足、システム互換性の問題、VSコードバージョンが古すぎる、ウイルス対策ソフトウェアまたはファイアウォール干渉です。ネットワーク接続、許可、ログファイル、およびコードの更新、セキュリティソフトウェアの無効化、およびコードまたはコンピューターの再起動を確認することにより、問題を徐々にトラブルシューティングと解決できます。

Dockerプロセスを表示する方法 Dockerプロセスを表示する方法 Apr 15, 2025 am 11:48 AM

Dockerプロセス表示方法:1。DockerCLIコマンド:Docker PS; 2。SystemDCLIコマンド:SystemCTL Status Docker; 3。CLIコマンドを作成するDocker:Docker-Compose PS。 4。プロセスエクスプローラー(Windows); 5。 /procディレクトリ(Linux)。

vscodeとは何ですか?vscodeとは何ですか? vscodeとは何ですか?vscodeとは何ですか? Apr 15, 2025 pm 06:45 PM

VSコードは、Microsoftが開発した無料のオープンソースクロスプラットフォームコードエディターと開発環境であるフルネームVisual Studioコードです。幅広いプログラミング言語をサポートし、構文の強調表示、コード自動完了、コードスニペット、および開発効率を向上させるスマートプロンプトを提供します。リッチな拡張エコシステムを通じて、ユーザーは、デバッガー、コードフォーマットツール、GIT統合など、特定のニーズや言語に拡張機能を追加できます。 VSコードには、コードのバグをすばやく見つけて解決するのに役立つ直感的なデバッガーも含まれています。

See all articles