欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

php常用正則表達(dá)的語(yǔ)法介紹

基本語(yǔ)法

創(chuàng)新互聯(lián)建站專注于企業(yè)全網(wǎng)整合營(yíng)銷推廣、網(wǎng)站重做改版、增城網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、HTML5建站成都商城網(wǎng)站開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為增城等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

界定符:

標(biāo)識(shí)一個(gè)正則表達(dá)式的開始和結(jié)束,用'/'或'#'或'{ }',因?yàn)檎Z(yǔ)法'{ }'也可能是正則表達(dá)式的運(yùn)算符,為了避免混淆,所以不建議使用。建議的用法如下:

Copy$pattern = '/[0-9]/';  //我喜歡這個(gè),看起來(lái)比較簡(jiǎn)潔 $pattern = '#[0-9]#';

原子:

可見原子:Unicode編碼表中可用鍵盤輸出后肉眼可見的字符,例如:標(biāo)點(diǎn) ; . / ? 或者英文字母,漢字等等可見字符
不可見原子:Unicode編碼表中可用鍵盤輸出后肉眼不可見的字符,例如:換行符 \n,Tab制表符\t, 空格等等,
一般只用這三個(gè)(換行符一般和其他字符一起匹配,因?yàn)橹挥袚Q行符是匹配不到的)
小提示:匹配運(yùn)算符前面需要加 '\' 例如:'+' 號(hào),匹配的話需要寫出 '\+'

元字符

原子的篩選方式:

| 匹配兩個(gè)或者多個(gè)分支選擇
[] 匹配方括號(hào)中的任意一個(gè)原子
[^] 匹配除方括號(hào)中的原子之外的任意字符;
例子:Duang|duang 或者 [Dd]uang 都可以匹配到Duang和duang
區(qū)間寫法:[a-z]匹配a到z的字符, [0-9]匹配0到9的字符。也可以[a-z0-9]
. 匹配除換行符之外的任意字符
\d 匹配任意一個(gè)十進(jìn)制數(shù)字,即{0-9]
\D 匹配任意一個(gè)非十進(jìn)制數(shù)字[^0-9] 相當(dāng)于[^\d]
\s 匹配一個(gè)不可見的原子,即[\f\n\r\t\v]
\S 匹配一個(gè)可見的原子,即[\f\n\r\t\v],相當(dāng)于[\s]z
\w 匹配任意一個(gè)數(shù)字、字母或下劃線,即[0-9a-zA-Z_]
\W 匹配任意一個(gè)非數(shù)字、字母或下劃線,[0-9a-zA-Z_],相當(dāng)于[\w]

量詞

{n} 表示其前面的原子剛好出現(xiàn)了n次。
[n] 表示其前面的原子最少出現(xiàn)n次
{n,m} 最少出現(xiàn)n次,最多出現(xiàn)m次
* 匹配0次、一次或者多次,即{0,}
+ 匹配一次或多次,即{1,}
? 匹配0或1次,即{0,1}

邊界控制

^ 匹配字符串開始的位置
$ 匹配字符串結(jié)尾的位置
例:^John 可以匹配到:John 但是匹配不到:123John,因?yàn)橐?guī)定了字符串以John開頭

模式單元

() 匹配其中的整體為一個(gè)原子, 如: (X|x)iaomi , 可以匹配到 xiaomi

修正模式

貪婪匹配

匹配結(jié)果存在歧義時(shí)取其長(zhǎng)(默認(rèn))

懶惰匹配

匹配結(jié)果存在歧義時(shí)取其短,只需在正則表達(dá)式的后面'/'加上'U',例如'/[0-9]/U';
例子:

Copy$subject = "test__123123123";
preg_match('/test.+123/', $subject, $matches); //貪婪模式  var_dump($matches);
preg_match('/test.+123/U', $subject, $matches); //懶惰模式var_dump($matches);

常見的修正模式:

U 懶惰匹配
i 忽略英文字母的大小寫
x 忽略正則表達(dá)式的空白符
s 讓元字符'.' 匹配包括換行符在內(nèi)的所有字符

常用函數(shù)

preg_match

執(zhí)行匹配正則表達(dá)式

preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] ) : int

pattern: 要搜索的模式,字符串類型。subject:輸入字符串。match: 如果提供了參數(shù)matches,它將被填充為搜索結(jié)果,數(shù)據(jù)結(jié)構(gòu)為一維數(shù)組。flags: 可以設(shè)置為PREG_OFFSET_CAPTURE,使用搜索結(jié)果的第0個(gè)元素為匹配的字符串,第1個(gè)元素為對(duì)應(yīng)的偏移量(位置)offset: 搜索從目標(biāo)字符串的起始位置開始匹配。

返回值:匹配次數(shù)
類似函數(shù)preg_match_all,參數(shù)與preg_match一致
區(qū)別:

preg_match:只匹配一次,搜索結(jié)構(gòu)match的數(shù)據(jù)結(jié)果為一維數(shù)組preg_match_all:匹配全部,搜索結(jié)果match的數(shù)據(jù)結(jié)構(gòu)為二維數(shù)組。

preg_replace

執(zhí)行一個(gè)正則表達(dá)式搜索和替換,返回值為替換后的字符串

preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] ) : mixed

pattern:要搜索的模式。可以是一個(gè)字符串或字符串?dāng)?shù)組。replacement:用于替換的字符串或字符串?dāng)?shù)組subject:要進(jìn)行搜索和替換的字符串或字符串?dāng)?shù)組。limit:替換的最大次數(shù)。默認(rèn)是 -1(無(wú)限)。count:替換次數(shù)。
類似函數(shù)preg_filter,參數(shù)與preg_replace一致
區(qū)別(使用數(shù)組進(jìn)行匹配的時(shí)候才看得出區(qū)別):preg_replace:不管是否有替換,返回全部結(jié)果preg_filter:只返回匹配的結(jié)果。

preg_split

通過(guò)一個(gè)正則表達(dá)式分隔字符串

preg_split ( string $pattern , string $subject [, int $limit = -1 [, int $flags = 0 ]] ) : array

$pattrn:用于搜索的模式,字符串形式。subject:輸入字符串limit:將限制分隔得到的子串最多只有l(wèi)imit個(gè),返回的最后一個(gè) 子串將包含所有剩余部分。flags:有以下標(biāo)記的組合:
-- 1. PREG_SPLIT_NO_EMPTY: 返回分隔后的非空部分。
-- 2. PREG_SPLIT_DELIM_CAPTURE: 用分隔符'()'括號(hào)把匹配的捕獲并返回。
-- 3. PREG_SPLIT_OFFSET_CAPTURE: 匹配返回時(shí)將會(huì)附加字符串偏移量

PREG_SPLIT_DELIM_CAPTURE這個(gè)參數(shù)可能比較難明白,舉個(gè)例子看看:

Copy$subject = "1a23b";  
$a = preg_split('/[\d]/', $subject, -1, PREG_SPLIT_NO_EMPTY);  
var_dump($a);  
$a = preg_split('/([\d])/', $subject, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE); 
var_dump($a);

輸出如下:

array (size=2)
0 => string 'a' (length=1)
1 => string 'b' (length=1)
array (size=5)
0 => string '1' (length=1)
1 => string 'a' (length=1)
2 => string '2' (length=1)
3 => string '3' (length=1)
4 => string 'b' (length=1)

preg_grep

返回匹配模式的數(shù)組條目

preg_grep ( string $pattern , array $input [, int $flags = 0 ] ) : array

$pattern:要搜索的模式,字符串形式$input:輸入數(shù)組flags:如果不設(shè)置則返回匹配的數(shù)目,設(shè)置PREG_GREP_INVERT則返回不匹配的數(shù)目。

preg_quote

轉(zhuǎn)義正則表達(dá)式字符,返回為轉(zhuǎn)義后的字符串

preg_quote ( string $str [, string $delimiter = NULL ] ) : string

str:輸入字符串delimiter:需要轉(zhuǎn)義的字符串

以上就是常用的php正則表達(dá)及語(yǔ)法注解總結(jié)的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注創(chuàng)新互聯(lián)其它相關(guān)文章!

文章題目:php常用正則表達(dá)的語(yǔ)法介紹
分享地址:http://www.chinadenli.net/article46/geooeg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站網(wǎng)站內(nèi)鏈虛擬主機(jī)網(wǎng)站設(shè)計(jì)微信公眾號(hào)ChatGPT

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

營(yíng)銷型網(wǎng)站建設(shè)