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

PHP開發(fā)基礎(chǔ)教程之正則表達(dá)式中的原子

一、原子

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

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

注:我們見到的空格、回車、換行、0-9、A-Za-z、中文、標(biāo)點(diǎn)符號(hào)、特殊符號(hào)全為原子。

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

語(yǔ)法:

int preg_match ( string $正則 , string $字符串 [, array &$結(jié)果] )

功能:根據(jù)$正則變量,匹配$字符串變量。如果存在則返回匹配的個(gè)數(shù),把匹配到的結(jié)果放到$結(jié)果變量里。如果沒有匹配到結(jié)果返回0

注:上面是preg_match常用的主要幾個(gè)參數(shù)。我在上面將另外幾個(gè)參數(shù)沒有列出來。因?yàn)椋硗鈨蓚€(gè)參數(shù)太不常用了。

我們來通過程序驗(yàn)證:

實(shí)例:代碼如下

<?php
//定義一個(gè)變量pattern,存放正則表達(dá)式
$pattern = '/a/';
//待搜素字段
$string = 'ddfdjjvi2jfvkwkfi24';
//判斷,如果匹配到了,輸出$matcges的值
if(preg_match($pattern, $string, $matches)){
    echo '匹配到了,結(jié)果為:';
    var_dump($matches);
}else{
    echo '沒有匹配到';
}
?>

結(jié)果:

因?yàn)槲蚁M氖瞧ヅ鋋,而$string當(dāng)是是不存在a的,所以不成功。

改造這個(gè)例子

實(shí)例:代碼如下

<?php
//定義一個(gè)變量pattern,存放正則表達(dá)式
$pattern = '/f/';
//待搜素字段
$string = 'ddfdjjvi2jfvkwkfi24';
//判斷,如果匹配到了,輸出$matcges的值
if(preg_match($pattern, $string, $matches)){
    echo '匹配到了,結(jié)果為:';
    var_dump($matches);
}else{
    echo '沒有匹配到';
}
?>

結(jié)果:

上面的字符串里存在f,所以匹配成功

接下來我們匹配一個(gè)空格試試:

實(shí)例:如下

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

結(jié)果:

因上,$string這個(gè)變量的w字符后存在一個(gè)空格。所以匹配成功,輸出了字符串類型,長(zhǎng)度為1。只不過我們的肉眼不可見,看不到這個(gè)字符串而已。

二、特殊標(biāo)識(shí)的原子

19.png

注:這里每一個(gè)都需要記住,最好達(dá)到默寫級(jí)別。記憶的時(shí)候成對(duì)記憶,d是匹配一個(gè)0-9,那么D 就是除了0-9以外的所有字符。
上面已經(jīng)說明的很清楚了,我們進(jìn)行實(shí)驗(yàn)一步一步對(duì)這些進(jìn)行學(xué)習(xí)。

請(qǐng)你在學(xué)習(xí)的時(shí)候,對(duì)于這些原子務(wù)必達(dá)到默寫級(jí)別。因?yàn)椋覀円院笞鰧?shí)驗(yàn)的時(shí)候,一點(diǎn)一點(diǎn)你就學(xué)會(huì)了。

三、d匹配一個(gè)0-9

代碼如下:

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

$string = '床9前明月光';

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

?>

四、D匹配一個(gè)非0-9的值

實(shí)例:代碼如下

<?php
header("Content-type:text/html;charset=utf-8");
$zz = '/\D/';
$string = '121243中23453453';
if(preg_match($zz, $string, $matches)){
    echo '匹配到了,結(jié)果為:';
    var_dump($matches);
}else{
    echo '沒有匹配到';
}
?>

五、w匹配一個(gè)a-zA-Z0-9_

實(shí)例如下

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

$string = '新中_國(guó)萬歲呀萬歲';

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

?>

六、W匹配一個(gè)非a-zA-Z0-9_

實(shí)例如下

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

$string = 'afasABCWEQR44231284737';

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

?>

七、s 匹配所有空白字符n t r 空格

實(shí)例如下

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

$string = "中國(guó)萬
歲";

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

?>

八、S 非空字符

實(shí)例如下

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

$string = "        
          a       ";

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

?>

匹配成功。雖然上面有空格,回車和縮進(jìn)。但是,有一個(gè)非空白字符a。因此,匹配成功。

九、[] 指定范圍的原子

實(shí)例如下

<?php

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

$string = '6a';

$string1 = '1C';

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

?>

再試一下將$string改為$string1,看看是不是匹配到了

結(jié)論:
上例中0-5匹配$string失敗,而$string1成功。因?yàn)椋?string中的第一個(gè)數(shù)值為6,不在[0-5]的范圍之內(nèi)。

十、[^ 字符] 不匹配指定區(qū)間的字符

代碼如下:

<?php

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

$string = 'aaaaab311dd';

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

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

?>

結(jié)論:

匹配$string不成功,但是匹配$string1的時(shí)候成功。因?yàn)橹欣ㄌ?hào)里面有個(gè)抑揚(yáng)符。

^ 抑揚(yáng)符在中括號(hào)里面的作用是不準(zhǔn)以中括號(hào)里面的字符進(jìn)行匹配。

十一、總結(jié)

20.png

繼續(xù)學(xué)習(xí)
||
<?php //定義一個(gè)變量pattern,存放正則表達(dá)式 $pattern = '/a/'; //待搜素字段 $string = 'ddfdjjvi2jfvkwkfi24'; //判斷,如果匹配到了,輸出$matcges的值 if(preg_match($pattern, $string, $matches)){ echo '匹配到了,結(jié)果為:'; var_dump($matches); }else{ echo '沒有匹配到'; } ?>
提交重置代碼