ホームページ  >  記事  >  バックエンド開発  >  PHPで正規表現を使う方法(1)_PHPチュートリアル

PHPで正規表現を使う方法(1)_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-15 13:25:02816ブラウズ

正規表現とは何ですか?

数年前、私は Web フォームの入力フィールドの興味深いテストをいくつか行いました。ユーザーはこのフォームに電話番号を入力します。この電話番号は、ユーザーが入力したときに広告に印刷されます。必要に応じて、米国の電話番号は (555) 555-5555 または 555-555-5555 のいずれかの方法で入力できますが、555-5555 は受け入れられません。

なぜ数字以外の文字をすべて破棄して、残りの文字の合計数が 10 文字だけになるようにしたらよいのかと疑問に思われるかもしれません。この方法は機能しますが、ユーザーが !555?333-3333 などを入力することはできません。

Web 開発者の観点から見ると、この状況は興味深い課題を提示しています。さまざまな形式をチェックするルーチンを作成することもできますが、ユーザーが 555.555.5555 のような形式を受け入れる場合にある程度の柔軟性を持たせるソリューションを見つけたいと考えています。

これはまさに正規表現 (略して regex) が適しているものです。以前にそれらを切り取ってアプリに貼り付けましたが、理解できない構文の問題は一度も見つかりませんでした。正規表現は数式によく似ています。 2x2=4 という形式の式を見ると、通常、「2 × 2 は 4 に等しい」と考えます。正規表現は非常によく似ています。この記事を読んだ後は、^b$ のような正規表現を見たときに、「行の先頭は b で、その後に行の終わりが続く」と自分に言い聞かせるでしょう。それだけでなく、PHP で正規表現を使用することがいかに簡単であるかがわかります。

正規表現を使用する場合

従うべきルールがある場合は、正規表現を使用して検索および置換操作を完了する必要がありますが、検索または置換する必要がある正確な文字を持っている必要はありません。たとえば、上記の電話番号の例では、ユーザーは入力された電話番号の形式を示すルールを定義しますが、電話番号に含まれる数字は定義しません。これは、大量のユーザー入力があるシナリオにも当てはまります。米国の州の略称は、A から Z までの大文字 2 文字に制限されています。ここでは正規表現を使用することもでき、大文字と小文字や長さの問題に関係なく、フォーム内のテキストまたはユーザー入力をアルファベット文字に単純に制限できます。

正規表現を使用すべきでない場合

正規表現は強力ですが、いくつかの欠陥もあります。そのうちの 1 つは、式を読み書きするスキルが必要です。アプリケーションに正規表現を含める場合は、正規表現を完全にコメント化する必要があります。こうすることで、後で他の人が式を変更する必要がある場合でも、機能を中断することなく変更できます。さらに、正規表現の使用に慣れていない場合、正規表現のデバッグが難しいと感じる可能性があります。

これらの問題を回避するには、より単純な組み込み関数で問題を十分に解決できる場合は、正規表現を使用しないでください。

POSIX と PCRE

PHP は、ポータブル オペレーティング システム実装 (POSIX) と Perl 互換正規表現 (PCRE) の 2 つの正規表現実装をサポートしています。 2 つの実装は異なる機能を提供しますが、PHP での使用は同様に簡単です。使用する正規表現スタイルは、正規表現のこれまでの経験と使用習慣によって異なります。 PCRE 式は POSIX 式よりわずかに高速であるという証拠がいくつかありますが、大部分のアプリケーションでは、この違いはそれほど重要ではありません。

この記事の例では、各正規表現メソッドの構文がコメントに含まれています。関数の構文では、regex は正規表現パラメータであり、検索される文字列は string です。括弧内のパラメータはオプションです。このチュートリアルでは主に基本的な内容を紹介するため、すべてのオプション パラメータを紹介するわけではありません。

1

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/446714.html技術記事正規表現とは何ですか? 数年前、私は Web フォームの入力フィールドを使って興味深い実験を行いました。ユーザーはこのフォームに電話番号を入力します。この電話番号はユーザーによって入力されます...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。