国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

PHP 初心者のための正規(guī)表現(xiàn)

1.區(qū)切り文字

區(qū)切り文字とは何ですか?

いわゆるデリミタとは境界を設(shè)定するもので、その境界內(nèi)に內(nèi)容を記述する必要があります

// これは正規(guī)表現(xiàn)における?yún)^(qū)切り文字であり、式は//

の途中に記述する必要があります。 /a-z/

2 .區(qū)切り文字とは何ですか?

區(qū)切り文字には | |、//、{}、!! などの文字、數(shù)字、バックスラッシュ以外の文字も使用できますが、特別な必要がない場合は、正規(guī)表現(xiàn)の區(qū)切り記號を使用する

3.正規(guī)表現(xiàn)の構(gòu)築

標(biāo)準(zhǔn)の正規(guī)表現(xiàn)は、

(1).Delimiter

(2).Expression

(3)の3つの部分で構(gòu)成されます。

區(qū)切り文字

: 區(qū)切り文字は式をラップするために使用されます。一般的に使用される?yún)^(qū)切り文字「/」を除く任意の文字を使用できます。

: 式はいくつかの特殊文字 (メタ文字) と非文字で構(gòu)成されます。特殊文字 (テキスト文字) は

修飾子

で構(gòu)成されます: PHP 正規(guī)表現(xiàn)の修飾子は正規(guī)表現(xiàn)の多くの特性を変更し、正規(guī)表現(xiàn)をニーズにより適したものにすることができます (注: 修飾記號では大文字と小文字が區(qū)別されます。つまり、 「e」は「E」と等しくありません)

正規(guī)表現(xiàn)の修飾子とは何ですか? PHP正規(guī)表現(xiàn)修飾子の種類と紹介:

◆i: 「i」を修飾子に追加すると、正規(guī)表現(xiàn)は大文字と小文字の區(qū)別をキャンセルします。つまり、「a」と「A」は同じです。

◆m: デフォルトの通常の開始 "^" と終了 "$" は通常の文字列のみに使用されます。修飾子に "m" を追加すると、開始と終了は文字列の各行、つまり先頭を參照します。各行は「^」で終わり「$」で終わります。

◆s: 修飾子に「s」を追加すると、改行文字を除く任意の文字を表すデフォルトの「.」が改行文字を含む任意の文字になります。

◆x: この修飾子を追加すると、エスケープされていない限り、式內(nèi)の空白文字は無視されます。

◆e: この修飾子は置換の場合にのみ役立ちます。つまり、置換の PHP コードとして使用されます。

◆A: この修飾子を使用する場合、式は一致する文字列の先頭である必要があります。たとえば、「/a/A」は「abcd」と一致します。

◆E: "m" とは異なり、この修飾子が使用される場合、"$" は改行文字の前ではなく、文字列の絶対的な末尾と一致します。このモードはデフォルトでオンになっています。

◆U: クエスチョンマークと同じ機(jī)能があり、「貪欲モード」を設(shè)定するために使用されます。

正規(guī)表現(xiàn)のアトムアトムは正規(guī)表現(xiàn)の最小単位であり、端的に言えば、アトムは一致する必要があるコンテンツです。有効な正規(guī)表現(xiàn)には少なくとも 1 つのアトムが含まれている必要があります

説明: 私たちが目にするスペース、キャリッジ リターン、ライン フィード、0 ~ 9、A-Za-z、中國語、句読點(diǎn)、特殊記號はすべてアトムです。アトミックな例を行う前に、まず関數(shù) preg_match について説明しましょう

構(gòu)文: int preg_match (string $normal, string $string [, array &$result])

上記は、preg_match で一般的に使用される主なパラメーターです。他のいくつかのパラメーターは上にリストしませんでした。他の 2 つのパラメーターがあまりにも一般的でないためです。

実験を通して証明してみましょう:

<?php
	header("Content-type: text/html; charset=utf-8");//設(shè)置編碼
	$zz = '/a/';

	$string = 'ddfdjjvai2jfvkwkfi24';

	if(preg_match($zz, $string, $matches)){
	    echo '匹配到了,結(jié)果為:';
	    var_dump($matches);
	}else{
	    echo '沒有匹配到';
	}
?>

注: $zz は正規(guī)表現(xiàn)の規(guī)則です。 $string は文字列です。 この例は、文字列が一致する正規(guī)表現(xiàn)を満たすかどうかを判斷するもので、満たす場合は結(jié)果を出力します。満足、出力情報(bào)

特別に識別された原子

圖片1.png

d 0-9 と一致

<?php
	header("Content-type: text/html; charset=utf-8");//設(shè)置編碼

	//   \d的用法

	$zz = '/\d/';
	$string = '我愛喝9你愛不愛喝';

	if(preg_match($zz, $string, $matches)){
	    echo '匹配到了,結(jié)果為:';
	    var_dump($matches);
	}else{
	    echo '沒有匹配到';
	}
?>

D 0-9 を除くすべての文字

わぁ-zA- Z0-9_

<?php
    //  \D   匹配出0-9以外的所有字符
	$zz = '/\D/';
	$string = '12124323453453';

	if(preg_match($zz, $string, $matches)){
	    echo '匹配到了,結(jié)果為:';
	    var_dump($matches);
	}else{
	    echo '沒有匹配到';
	}
?>
W wの反対

<?php 
	//  \w   匹配a-zA-Z0-9 還有下劃線

	$zz = '/\w/';  
	$string = '新中_國萬歲呀萬歲';
	if(preg_match($zz, $string, $matches)){
	    echo '匹配到了,結(jié)果為:';
	    var_dump($matches);
	}else{
	    echo '沒有匹配到';
	}
?>
s すべての空白文字と一致します

<?php
    //\W  除a-zA-Z0-9_ 以外的所有字符

	$zz = '/\W/';  
	$string = '......';

	if(preg_match($zz, $string, $matches)){
	    echo '匹配到了,結(jié)果為:';
	    var_dump($matches);
	}else{
	    echo '沒有匹配到';
	}
?>
S 空でない文字

<?php
        //  \s  匹配所有的空白字符
	$zz = '/\s/';
	$string = "中國萬
	歲";

	if(preg_match($zz, $string, $matches)){
	    echo '匹配到了,結(jié)果為:';
	    var_dump($matches);
	}else{
	    echo '沒有匹配到';
	}
?>
[ ]指定範(fàn)囲アトム

<?php
	//  \S  匹配非空字符
	$zz = '/\S/';
	$string = "        
          a       ";

	if(preg_match($zz, $string, $matches)){
	    echo '匹配到了,結(jié)果為:';
	    var_dump($matches);
	}else{
	    echo '沒有匹配到';
	}
?>

これらの w s W S を覚えるのは難しいので、以下に同等のものがあります。効果は s w などと同じです。

圖片2.png

+ 前の文字と少なくとも 1 回一致します

<?php
	//  [] 指定原子范圍
	$zz = '/[0-5]\w+/';
	$string = '6a';
	$string1 = '1C';
	if(preg_match($zz, $string, $matches)){
	    echo '匹配到了,結(jié)果為:';
	    var_dump($matches);
	}else{
	    echo '沒有匹配到';
	}

?>
* 前の文字と 0 回または任意の回?cái)?shù)一致します

<?php
	header("Content-type: text/html; charset=utf-8");//設(shè)置編碼

	$zz = '/\d+/';

	$string = "迪奧和奧迪250都是我最愛";
	//待會(huì)兒再試試中間沒有0-9的情況
	//$string = "迪奧和奧迪都是我最愛";

	if(preg_match($zz, $string, $matches)){
	    echo '匹配到了,結(jié)果為:';
	    var_dump($matches);
	}else{
	    echo '沒有匹配到';
	}
?>
は、0 回または 1 回出現(xiàn)します (オプション)

<?php
	$zz = '/\w*/';
	$string = "!@!@!!@#@!$@#!";
	//待會(huì)兒再試試中間沒有0-9的情況
	//$string1 = "!@#!@#!abcABC#@#!";
	if(preg_match($zz, $string, $matches)){
	    echo '匹配到了,結(jié)果為:';
	    var_dump($matches);
	}else{
	    echo '沒有匹配到';
	}
?>
を除くすべての文字と一致します。 n

<?php
    $zz = '/ABC\d?ABC/';
	$string = "ABC1ABC";
	//待會(huì)兒再試試中間沒有0-9的情況
	//$string1 = "ABC888888ABC";
	//$string2 = "ABCABC";
	if(preg_match($zz, $string, $matches)){
	    echo '匹配到了,結(jié)果為:';
	    var_dump($matches);
	}else{
	    echo '沒有匹配到';
	}
?>
| (垂直バー)、または、最も低い優(yōu)先順位

<?php
    
	$zz = '/gg.+gg/';
	$string = "ABC1ABC";
	if(preg_match($zz, $string, $matches)){
	    echo '匹配到了,結(jié)果為:';
	    var_dump($matches);
	}else{
	    echo '沒有匹配到';
	}
?>

上記の例から、次のことがわかります。

1. マッチングの最初のアイデアは、abcd または abbcd に一致することでした。ただし、$string1 と $string2 を照合すると、照合結(jié)果は abc と bcd になります。

2 を?qū)g裝または照合すると、照合結(jié)果は abc または bcd になります。連続する文字列よりも優(yōu)先度が高いわけではありません??

^ (サーカムフレックス)、^

<?php
        $zz = '/abc|bcd/';
	$string1 = "abccd";
	$string2 = "ggggbcd";

	if (preg_match($zz, $string1, $matches)) {
	    echo '匹配到了,結(jié)果為:';
	    var_dump($matches);
	} else {
	    echo '沒有匹配到';
	}
?>

の後の文字列で始まる必要があります。実験により次の結(jié)論が見つかりました:

1 は正常に一致しましたが、$string2 は正常に一致しませんでした

2。指定された文字

3 で始まり、$string2 は ^

4 以降の文字で始まりません。この規(guī)則の変換は、「Li Wenkai はとてもハンサムです」で始まり、その後に a-zA-Z0- が続きます。 9_少なくとも 1 文字。

$ (ドル記號) は $ の前の文字で終わる必要があります

<?php
	$zz = '/^張杰好帥\w+/';
	$string1 = "張杰好帥abccdaaaasds";
	//$string2沒有以張杰好帥開始
	$string2 = "帥abccdaaaasds";
	if (preg_match($zz, $string1, $matches)) {
	    echo '匹配到了,結(jié)果為:';
	    var_dump($matches);
	} else {
	    echo '沒有匹配到';
	}
?>

注:

$string1 は正常に一致しますが、$string2 は一致しません

$$ の前の文字は d+ で、その後に中國語の努力が続きます。

したがって、一致するのはこの全體です。 d は 0 ~ 9 の整數(shù)型を指し、+ 記號は少なくとも 1 つの 0 ~ 9

{m} を表します。これらは m 回のみ出現(xiàn)できます

<?php
	$zz = '/\d+努力$/';
	$string1 = "12321124333努力";
	//$string2
	$string2 = "12311124112313力";

	if (preg_match($zz, $string1, $matches)) {
	    echo '匹配到了,結(jié)果為:';
	    var_dump($matches);
	} else {
	    echo '沒有匹配到';
	}
?>

注: d{1,3}上の例では、0 ~ 9 は 1 回、2 回または 3 回のみ出現(xiàn)できると規(guī)定しました。それ以外の時(shí)間はすべて間違っています

{m,} 少なくとも m 回、最大數(shù)は制限されていません

<?php
	$zz = '/喝\d{1,3}酒/';
	$string1 = "喝9酒";
	//$string2 = "喝988酒";
	if (preg_match($zz, $string1, $matches)) {
	    echo '匹配到了,結(jié)果為:';
	    var_dump($matches);
	} else {
	    echo '沒有匹配到';
	}
?>

上の例では、d{2,} を飲むと規(guī)定しています次の 0 ~ 9 少なくとも 2 回出現(xiàn)する必要があり、最大回?cái)?shù)に制限はありません。したがって、$string1 は一致に失敗し、$string2 は正常に一致します。 $string3 は一致に成功しました

正規(guī)表現(xiàn)のヒント

少し書いて少しテストしてください

定數(shù)の正規(guī)化が必要であり、一致が成功するかどうかを比較するために preg_match を使用するためです。成功したら次のポイントを書きましょう。書き終えてすべてのマッチングが成功するまで!

次に、電子メールの正規(guī)表現(xiàn)の統(tǒng)合例を作成しましょう

ステップ 1: すべての電子メール形式をリストします

liwenkai@phpxy.com

iwenkai@corp.baidu.cm

iwenkai@126。 _w_k@xxx.com

2345@qq.com

最初に @ の前の文字 w+ と一致します (0-9A-Za-z_ であるため)

2 番目の文字の後に @ 記號が続きます

3 番目の文字は次にqq や 126 などの主要なドメイン名は

corp.baidu または 126 で下線を引くことができないため、[a-zA-Z0-9-]+ と書きます。通常、メールのサフィックスは次のようになります。したがって、次のように書くことができます: ([a-zA-Z0-9-]+.){1,2}

上記は、獨(dú)自の意味を持つようにエスケープするものです。括弧は少なくとも 1 回、最大 2 回繰り返す必要があります。

com|cn|org|gov.cn|net|edu.cn を選択してお待ちください

<?php
    	$zz = '/喝\d{2,}/';
	$string1 = "喝9";
	//$string2 = "喝98";
	//$string3 = "喝98122121";
	if (preg_match($zz, $string1, $matches)) {
	    echo '匹配到了,結(jié)果為:';
	    var_dump($matches);
	} else {
	    echo '沒有匹配到';
	}
?>

學(xué)び続ける
||
<?php header("Content-type: text/html; charset=utf-8");//設(shè)置編碼 $zz = '/a/'; $string = 'ddfdjjvai2jfvkwkfi24'; if(preg_match($zz, $string, $matches)){ echo '匹配到了,結(jié)果為:'; var_dump($matches); }else{ echo '沒有匹配到'; } ?>
提出するリセットコード