PHP 正規表現の入門
[ 注: 印刷版 Smashing Book #3 をすでに予約注文しましたか?この本は、Web サイトを再設計する方法に関する専門的なガイドであり、専門家によって書かれた、進歩的な Web デザインのためのまったく新しい考え方も紹介しています。]
1. 正規表現とは正規表現 (正規表現または正規表現とも呼ばれます) の主な目的regexp は、指定されたテキスト内のパターンを効率的に検索することです。これらの検索パターンは、正規表現パーサーが理解できる特別な形式を使用して記述されます。
正規表現は Unix システムに由来しており、ユーザーが文字列を操作したりテキストを操作したりするのに役立つ grep と呼ばれるプログラムが設計されました。 いくつかの基本的なルールに従うことで、非常に複雑な検索パターンを作成できます。
例として、電子メールまたは電話番号の形式が正しいかどうかを確認するタスクが与えられたとします。正規表現のおかげで、いくつかの簡単なコマンドを使用することで、これらの問題を簡単に解決できます。構文は最初は必ずしも簡単そうに見えませんが、一度学習すると、数文字を入力するだけでかなり複雑な検索を簡単に実行できることがわかり、別の観点から問題にアプローチできるようになります。
2 Perl 互換の正規表現PHP は、さまざまな解析エンジンを使用するかなりの数の正規表現関数を実装しています。 PHP には 2 つの主要なパーサーがあります。 1 つは POSIX と呼ばれ、もう 1 つは PCRE または Perl 互換正規表現です。
POSIX の PHP 関数プレフィックスは ereg_ です。 PHP 5.3 のリリース以降、このエンジンは非推奨になりましたが、より最適で高速な PCRE エンジンを見てみましょう。
PHP では、すべての PCRE 関数は preg_match や preg_replace などの preg_ で始まります。完全な関数リストは PHP のドキュメントで読むことができます。
3. 基本構文正規表現を使用するには、まず構文を学ぶ必要があります。この構文は、一連の文字、数字、ドット、ハイフン、特殊記号で構成されており、さまざまな括弧を使用してグループ化できます。
PHP では、すべての正規表現パターンは Perl 形式を使用した文字列として定義されます。 Perl では、正規表現パターンは /hello/ のようにスラッシュの間に記述されます。 PHP では、これは文字列「/hello/」になります。
それでは、正規表現の基本的な構成要素である演算子をいくつか見てみましょう
^ | サーカムフレックス記号は始まりを示しますパターンの一部ですが、省略できる場合もあります |
$ | サーカムフレックス記号と同様に、ドル記号は検索パターンの終わりを示します |
。 | ピリオドは任意の 1 文字と一致します |
? | 前のパターンと 0 回または 1 回一致します |
+ | 前のパターンと 1 回以上一致します |
* | 前のパターンと 0 回以上一致します |
| | Boolean OR |
- | 要素の範囲に一致します |
() | 異なるパターン要素をグループ化します |
[] | 四角形の間の任意の 1 文字と一致します括弧 |
{min, max} | 正確な文字数を照合するために使用されます |
d | 任意の 1 桁の数字と一致します |
D | 任意の 1 つの数字以外の文字と一致します |
w | アンダースコア (_) を含む任意の英数字と一致します |
W | アンダースコア文字を除く任意の非英数字と一致します |
s | 空白文字と一致します |
PHP では、スラッシュ文字は単純なスラッシュを使用してエスケープされます。例: '/he/llo/'
これらの演算子の使用方法を簡単に理解するために、いくつかの例を見てみましょう:
'/hello/' | word hello |
'/^hello/' | 文字列の先頭にある hello と一致します。一致する可能性があるのは、hello または helloworld ですが、worldhello |
'/hello$/' | 文字列の末尾の hello と一致します。 |
'/he.o/' | 任意の文字と一致します。彼とoの間。一致する可能性があるのは helo または heyo ですが、 hello |
‘/he?llo/’ | llo または hello |
‘/hello+/’ | hello on または more time には一致します。例えば。 hello or hellohello |
'/he*llo/' | llo、hello または hehello には一致しますが、hellooo |
'/hello|world/' | 単語 hello または world | のいずれかに一致します
'/(A-Z)/' | ハイフン文字と一緒に使用すると、このパターンは A から Z までのすべての大文字に一致します。 A、B、C… |
'/[abc]/' | 任意の 1 文字、a、b、c と一致します |
その後の 1 つの c 文字と正確に一致します文字ab。例えば。 abc には一致しますが、abcc には一致しません | |
文字 ab の後の 1 つ以上の c 文字と一致します。例えば。 abcor abcc | |
文字 ab の後の 2 ~ 4 個の c 文字と一致します。例えば。 abc、abccc、abcccc には一致しますが、abc には一致しません |
$ | |
. | |
| | |
() | |
[ abc] | |
[^abc] | |
s | |
a? | |
a* | |
a+ | 1 つ以上の a|
a{2} | a |
a{,5} | a の 5 つまで |
a{5,10} | a の 5 から 10 まで |
w | 任意の英数字とアンダースコア。 [A-Za-z0-9_] に相当します |
W | 英数字以外の任意の文字 |
s | 任意の空白文字 |
S | 白以外の任意の-スペース文字 |
d | 任意の数字。 [0-9] に相当します |
D | 数字以外の任意の値。 [^0-9] に等しい |
パターン修飾子 | 説明 |
m | 複数行モード |
S | パターンの追加分析 |
u | パターンは UTF-8 として扱われます |
8. 役に立つ書籍 15 Web 開発者のための PHP 正規表現 PHP で正規表現をマスターする PHP Regex の概要 | 著者: Joel Reyes | Joel Reyes 数年間 Web サイトのデザインとコーディングを行っていますこれにより、彼は Web デザインとグラフィック デザインを中心としたデザイン リソースとポートフォリオ サイトである Looney Designer のクリエイティブな頭脳を担うようになりました。 .html

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。
