ホームページ  >  記事  >  バックエンド開発  >  PHP と正規表現シリーズのパート 1: PHP の正規表現_PHP チュートリアル

PHP と正規表現シリーズのパート 1: PHP の正規表現_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 14:57:37797ブラウズ

今日から、主に正規表現に関する PHP チュートリアルのシリーズを開始します。

おおよその内容の構成は次のとおりです:

1. PHP の正規表現

2. 8 つの実践的な PHP 正規表現

3. 30 分でマスターする正規表現

5. 記事収集システムとFAQにおける正規表現の適用

6. ...続きを読む

記事内容のソースについては、当サイトの古い記事を再構成したものもあります。文学(カナダの OEL クラスメートのおかげです)、一部は個人的な経験です。

私の個人的な能力には限界があるので、間違いがあるかもしれません。それを見つけた友人は、初心者に誤解を与えないように注意して修正してください。

PHP と正規表現シリーズ: PHP の正規表現

PHP における正規表現と正規表現の役割の紹介

正規表現は、PHP でこれらのルールを使用して柔軟に一致、チェックを行うことができます。 、置換して文字列を付けます。この記事では、PCRE の基本と、preg_match()、preg_replace()、および preg_split() 関数の使用方法について説明します。

次に、これらの関数の使用方法を例から段階的に学びましょう。

preg_match のルールマッチング

preg_match() を使用すると、文字列のルールマッチングを完了できます。 preg_match() 関数は、一致が見つかった場合は 1 を返し、そうでない場合は 0 を返します。オプションの 3 番目のパラメーターを使用すると、一致した部分を配列に保存できます。この機能は、データを検証するときに非常に役立ちます。


$string = "football";
if (preg_match('/foo/', $string)) {
// 正しく一致します
}


上記の例は、football という単語に foo が含まれているため、正常に一致します。次に、電子メール アドレスの検証など、より複雑なことを試してみましょう。


$string = "first.last@domain.uno.dos";
if (preg_match(
'/^[^0-9][a-zA-Z0-9_]+([.][a- zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2 ,4}$/',
$string)) {
// 電子メール アドレスを確認する
}


この例では、電子メール アドレスが正しい形式であることを確認します。次に、この正規表現によって表されるさまざまなルールを見てみましょう。

PCRE 名前が示すように、Perl の正規表現と同じ構文を持つため、各正規表現には区切り文字のペアが必要です。通常、区切り文字として / を使用します。

先頭の ^ と末尾の $ は、文字列の先頭から末尾までをチェックするように PHP に指示します。 $ を付けなくても、プログラムは電子メールの末尾と一致します。

[ と ] は、権限の入力タイプを制限するために使用されます。たとえば、a ~ z ではすべての小文字が許可され、A ~ Z ではすべての大文字が許可され、0 ~ 9 ではすべての数字が許可されます。

{ と } は、予想される文字数を制限するために使用されます。たとえば、{2,4} は、.com.cn や .info など、文字列の各セクションの長さが 2 ~ 4 文字であることを意味します。ここで、「.」は文字としてカウントされません。{2,4} より前に定義された許可された入力タイプには大文字と小文字のみが含まれるため、このセグメントは大文字と小文字のみに一致します

(および)はセクションをマージするために使用されますおよび定義文字 文字列内に存在する必要がある文字。 (a|b|c) は、a、b、または c と一致します。

(.) はすべての文字に一致しますが、[.] は「.」自体にのみ一致します。

一部の記号自体を使用するには、先頭に を追加する必要があります。これらの文字は次のとおりです: ( ) [ ] . * ? + ^ |

ルール置換 preg_replace

preg_replace を使用すると、定義した正規表現に一致する文字列を置換できます。単純なコメント削除関数:

preg_replace('[(/*)+.+(*/)]', '', $val);

このコードは削除して PHP と CSS/ *コメント* で使用できます。 / 複数行のコメントの形式。パラメータは、正規表現、置換する文字列、置換対象の文字列の 3 つです (ここでは削除関数を使用するため、空白文字列 -> '')。二次ルールを一致させたい場合は、$0 を使用してすべてを一致させ、$1、$2 などを使用して個別の二次ルールを表すことができます。

ルール分割 preg_split

preg_split は、一致した正規表現に従って、文字列全体を 1、2、またはそれ以上の文字の複数のセグメントに分割できます。たとえば、スペースまたはカンマで区切られてタグを取得します。



$tags = preg_split('/[,]/', 'my,tags,unevenly,spaced');


正規表現は、期待する内容に集中できる非常に実用的なテクニックです。

しかし、正規表現が期待どおりの結果を与えないと非常にイライラすることがあります。そのため、皆さんのお役に立てればと思い、このシリーズの 2 番目の記事にいくつかの簡単な構文ガイドラインを添付します。

添付: PCRE 構文ガイド

/ 区切り文字
^ 文字列の先頭
$ 文字列の末尾
[a-z] すべての小文字
[A-Z] すべての大文字
[0-9] すべての数字
直前の文字 0 または 1 * 直前にゼロ個以上の文字
+
{4} の直前に 1 文字以上
{4,8} の直前に 4 文字
の直前に 4 ~ 8 文字 任意の文字
(red|green|blue) 赤または緑または青 (赤または緑または青) )
のスペース

特殊文字 (前に追加する必要があります)
( ) * + ^ ?

http://www.bkjia.com/PHPjc/363980.html

tru​​ehttp://www.bkjia.com/PHPjc/363980.html技術記事今日から、主に正規表現に焦点を当てた PHP チュートリアルのシリーズを開始します。 おおよその内容の配置は次のとおりです: 1. PHP の正規表現 2. 8 つの実用的な PHP 正規表現...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。