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

PHPの正規(guī)表現(xiàn)表現(xiàn)におけるアトム

Atom

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

目に見える文字も目に見えない文字もすべてアトムです

説明: スペース、キャリッジリターン、ラインフィード、0-9、A-Za-z、中國語、句読點(diǎn)、特殊記號はすべてアトムです。

アトミックな例を行う前に、まず関數(shù) preg_match:

int preg_match (string $ Regular, string $string[, array &$result]) について説明しましょう

関數(shù): $regulator 変數(shù) $string に従って照合します変數(shù)。存在する場合は、一致の數(shù)を返し、一致した結(jié)果を $result 変數(shù)に入れます。結(jié)果が見つからない場合は 0 が返されます。

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

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

<?php
//定義一個(gè)變量叫zz,放正則表達(dá)示。為了方便大家記憶,如果你英文比較ok,建議把變量名還是寫成英文的$pattern。
$zz = '/a/';

$string = 'ddfdjjvi2jfvkwkfi24';

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

?>

なぜなら、私が望んでいるのは a と一致することであり、$string が存在しないため、それは失敗します。

<?php
$zz = '/wq/';

$string = 'ssssswqaaaaaa';

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

?>

上記の文字列のsの後にwqがあるのでマッチング成功です。

次に、スペースを一致させてみましょう:

<?php
$zz = '/ /';

$string = 'sssssw aaaaa';

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

?>

実行結(jié)果は次のようになります:

QQ截圖20161114135142.png

$string変數(shù)のw文字の後にスペースがあるためです。したがって、一致は成功し、文字列型が長さ 1 で出力されます。ただ、私たちの肉眼は目に見えず、この文字列を見ることができません。

特別に識別された原子

[ ]


これを覚えておく必要があります。ディクテーションレベルに達(dá)するのが最善です。覚えるときは、d は 0 ~ 9 に一致し、D は 0 ~ 9 を除くすべての文字であることをペアで覚えてください。
上記の説明は非常に明確です。これらを段階的に學(xué)習(xí)するために実験を行ってみましょう。

學(xué)習(xí)する際は、これらの原子のディクテーションレベルに必ず到達(dá)してください。將來実験をするときに少しずつ學(xué)んでいくからです。

d は 0-9 と一致します

<?php
$zz = '/\d/';

$string = '我愛喝9你愛不愛喝';

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

?>

D は 0-9 以外の値と一致します

<?php
$zz = '/\D/';

$string = '121243中23453453';

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

?>

一致は成功し、一致します。 0 ~ 9 の文字ではないためです。

w は a-zA-Z0-9_

<?php
$zz = '/\w/';

$string = '新中_國萬歲呀萬歲';

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

?>

と一致します。 一致は成功し、アンダースコアが一致します。

W は非 a-zA-Z0-9_

<?php
$zz = '/\w/';

$string = 'afasABCWEQR44231284737';

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

?>

と一致しましたが失敗しました。なぜなら、上記はすべて a-zA-Z0-9_ であり、a-zA-Z0-9_ でないものは何もないからです。

s は、空白文字以外のすべての空白文字に一致します。

<?php
$zz = '/\s/';

$string = "中國萬
歲";

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

?>

復(fù)帰があるため、一致は成功します。

S の空でない文字

<?php
$zz = '/\s/';

$string = "        
         a       ";

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

?>

が正常に一致しました。スペースはありますが、改行とインデントが表示されます。ただし、空白以外の文字 a が存在します。したがって、試合は成功です。

[] は原子の範(fàn)囲を指定します

<?php

$zz = '/[0-5]\w+/';

$string = '6a';

$string1 = '1C';

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

?>

結(jié)論:
上記の例では、0-5 は $string と一致しませんが、$string1 は成功します。 $string の最初の値は 6 であり、[0-5] の範(fàn)囲內(nèi)にないためです。

<?php

$zz = '/[a-zA-Z0-9_]\w/';

$string = 'ab';

$string1 = '9A';

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

?>

結(jié)論:

$string と $string1 はどちらも正常に一致します。 w は [a-zA-Z0-9_] なので

<?php

$zz = '/[abc]\d+/';

$string = 'a9';

$string1 = 'b1';

$string2 = 'c5';

$string3 = 'd4';


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

?>

結(jié)論:

$string、$string1、$string2 は正常に一致しますが、$string3 は一致しません。 $string3は[abc]の範(fàn)囲を超えているため、dから始まります。

[^ 文字] は指定された範(fàn)囲の文字と一致しません

<?php

$zz = '/[^0-9A-Za-z_]/';

$string = 'aaaaab311dd';

$string1 = '!$@!#%$#^##';

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

?>

結(jié)論:

1. $string のマッチングは失敗しましたが、$string1 のマッチングでは成功しました。角括弧內(nèi)にサーカムフレックス文字があるためです。

2.^ 角括弧內(nèi)のサーカムフレックス文字の機(jī)能は、角括弧內(nèi)の文字と一致することではありません。

概要:

atom説明
dは0-9と一致します
D 0-9 を除くすべての文字
w a-zA-Z0-9_
W0-9A-Za-z_を除くすべての文字
sスペース以外のすべての空白文字と一致します
Sすべて非空白文字
原子の指定範(fàn)囲
原子同等の式
w[a-zA-Z0-9_]
W[^a-zA- Z0-9_]
d[0-9]
D[^0-9]
s[tnfr]
S[^ tn fr]
學(xué)び続ける
||
<?php $zz = '/[^0-9A-Za-z_]/'; $string = 'aaaaab311dd'; $string1 = '!$@!#%$#^##'; if(preg_match($zz, $string, $matches)){ echo '匹配到了,結(jié)果為:'; var_dump($matches); }else{ echo '沒有匹配到'; } ?>