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

PHP 正規表現学習ノート、正規表現学習ノート_PHP チュートリアル

WBOY
リリース: 2016-07-12 09:04:58
オリジナル
790 人が閲覧しました

php正規表現の勉強ノート、正規表現の勉強ノート

php正規表現の勉強ノート共有:

1. 正規表現を作成します

$regex = '/d/i';
これは JavaScript の最初のメソッドに少し似ていますが、ここでは単語が文字列である点が異なります。

2. 正規表現内の特殊文字

特殊文字は:

3. 正規表現の関数

preg_match と preg_match_all、preg_replace と preg_replace_callback、preg_grep、preg_split、preg_last_error、preg_quote の 8 つのメソッドがあります。

preg_match:

正規表現一致を実行する

パターンの一致数を返します。 preg_match() は最初の一致後に

検索を停止するため、その値は 0 回 (一致なし) または 1 回になります。

リーリー 上記のコード例では、パラメータ「PREG_OFFSET_CAPTURE」を追加しています。この場合、$matches にオフセット番号が 1 つ増えます。例えば、以下の「2」

preg_match_all:

「グローバル」正規表現一致を実行します

一致した完全な数 (おそらく 0) を返すか、エラーが発生した場合は FALSE を返します。

以下のコードの $subject と $pattern は上記と同じです。唯一の違いは、preg_match が preg_match_all に置き換えられていることです。 リーリー

戻り値の数は 2 で、$matches 配列の入力を見ると、2 つあります。上記の他にもう1つ。

preg_replace:

正規表現の検索と置換を実行する

subject が配列の場合、preg_replace() は配列を返し、それ以外の場合は文字列を返します。

一致するものが見つかった場合は、置換された件名が返され、そうでない場合は、変更されていない件名が返されます。エラーが発生した場合は NULL が返されます。

コードでは、$subject は 2 つの文字列セットを含む配列です。次のステップは、複数の数値を大文字の「Z」に置き換えることです。

リーリー

preg_replace_callback:

「コールバック」を使用して正規表現検索と置換を実行します

置換文字列を計算するために置換の代わりにコールバックを指定できることを除いて、この関数の動作は、返される結果を含む他の側面では preg_replace() と同等です。

次のコードも大文字の「Z」に置き換えられます。コールバック関数の各 $matches の内容は、コードのコメント部分です。1 回目は 133、2 回目は 2 です。 リーリー

preg_grep:

パターンに一致する配列エントリを返します

入力内のキーを使用してインデックス付けされた配列

を返します。

以下のサンプルコードでは、数字を含まない $subject 配列に「ddsdfd」を追加しました。照合する際に、数字のない数字を除外しています。

$result2 の出力はその逆で、フィルターされた結果が出力されますが、キーは 0 ではなく 2 のままです。

$subject = array("dd133aa2", "kk1ff3", "ddsdfd");
$pattern = '/\d+/';
$result = preg_grep($pattern, $subject);
$result2 = preg_grep($pattern, $subject, PREG_GREP_INVERT);
print_r($result);
print_r($result2);
ログイン後にコピー


preg_split:

通过一个正则表达式分隔字符串

返回一个使用 pattern 边界分隔 subject 后得到 的子串组成的数组。

下面代码中,我将$pattern中的表达式加了括号,为了在$result2中捕获到。

$subject = "dd133aa2cc";
$pattern = '/(\d+)/';
$result = preg_split($pattern, $subject);
$result2 = preg_split($pattern, $subject, null, PREG_SPLIT_DELIM_CAPTURE);
print_r($result);
print_r($result2);

ログイン後にコピー


preg_last_error:

返回最后一个PCRE正则执行产生的错误代码

preg_match('/(&#63;:\D+|<\d+>)*[!&#63;]/', 'foobar foobar foobar');
$result = preg_last_error();//PREG_BACKTRACK_LIMIT_ERROR 调用回溯限制超出
print_r($result);
ログイン後にコピー

preg_quote:

转义正则表达式字符

返回转义后的字符串

下面的代码中,$subject中有两个需要转义的字符,“.”和“?”。

将$result打印出后是“dd\.a\?a2cc”,而在$result2中,多加了个参数“a”,这样的话“a”也会被转义,“dd\.\a\?\a2cc”

$subject = "dd.a&#63;a2cc";
$result = preg_quote($subject);
$result2 = preg_quote($subject, 'a');
print_r($result);
print_r($result2);
ログイン後にコピー

4、模式修正符

以上就是关于php正则表达式的全部内容介绍,希望对大家的学习有所帮助。

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1071224.htmlTechArticlephp正则表达式学习笔记,正则表达式学习笔记 php正则表达式学习笔记分享: 1.创建正则表达式 $regex = '/\d/i'; 与JavaScript中的第一个方式有点...
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート