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

php 正規(guī)表示示中的原子

原子

原子是正則表達示裡面的最小單位,原子說白了就是需要匹配的內(nèi)容。一個成立的正規(guī)表示示當中必須最少要有一個原子。

所有可見不可見的字元就是原子

說明:我們見到的空格、回車、換行、0-9、A-Za-z、中文、標點符號、特殊符號全為原子。

在做原子的實例前我們先來講解一個函數(shù),preg_match:

int preg_match ( string $正規(guī), string $字串[, array &$結(jié)果] )

功能:根據(jù)$正規(guī)變數(shù),符合$字串變數(shù)。如果存在則回傳符合的個數(shù),把符合的結(jié)果放到$結(jié)果變數(shù)裡。如果沒有符合到結(jié)果回傳0。

註:上面是preg_match常用的主要幾個參數(shù)。我在上面將另外幾個參數(shù)沒有列出來。因為,另外兩個參數(shù)太不常用了。

我們來用實驗證明:

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

$string = 'ddfdjjvi2jfvkwkfi24';

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

?>

因為我希望的是匹配a,而$string當是不存在a的,所以不成功。

<?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 '沒有匹配到';
}

?>

執(zhí)行結(jié)果如下:

QQ截圖20161114135142.png

#因上,$string這個變數(shù)的w字符後面存在一個空格。所以匹配成功,輸出了字串類型,長度為1。只不過我們的肉眼不可見,看不到這個字串而已。

特殊標識的原子

#原子
#\d符合一個0-9
#\D除了0-9以外的所有字元
\wa-zA-Z0-9_
\W除了0-9A-Za-z_以外的所有字元
\s符合所有空白字元\n \t \r 空格
\S符合所有非空白字元
[ ]指定範圍的原子
#


這個個需要記住,最好達到默寫等級。記憶的時候成對記憶,\d是匹配一個0-9,那麼\D 就是除了0-9以外的所有字元。
上面已經(jīng)說明的很清楚了,我們進行實驗一步一步對這些進行學習。

請你在學習的時候,對於這些原子務必達到默寫等級。因為,我們以後做實驗的時候,一點一點你就學會了。

\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 匹配所有空白字元\n \t \r 空格

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

$string = "中國萬
歲";

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

?>

匹配成功,因為有一個回車。

\S 非空字元

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

$string = "        
         a       ";

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

?>

匹配成功。雖然上面有空格,回車和縮排。但是,有一個非空白字元a。因此,匹配成功。

[] 指定範圍的原子

<?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中的第一個數(shù)值為6,不在[0-5]的範圍內(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]的範圍,它是從d開始的。

[^ 字元] 不符合指定區(qū)間的字元

<?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的時候成功。因為中括號裡面有個抑揚符。

????2.^ 抑揚符在中括號裡面的作用是不準以中括號裡面的字元進行配對。

總結(jié):

##[^ \ t\n\f\r]繼續(xù)學習
||
<?php $zz = '/[^0-9A-Za-z_]/'; $string = 'aaaaab311dd'; $string1 = '!$@!#%$#^##'; if(preg_match($zz, $string, $matches)){ echo '匹配到了,結(jié)果為:'; var_dump($matches); }else{ echo '沒有匹配到'; } ?>

        原子等價式
        \w[a-zA-Z0-9_]
        #\W[^a-zA-Z0-9_]
        \d[0-9]
        #\D[^0-9]
        \s[ \t\n\f\r]
        #\S

          • <sup id="cifqt"><address id="cifqt"></address></sup>