av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術(shù)文章
文章詳情頁

PHP擴(kuò)展之文本處理(二)——PCRE正則表達(dá)式語法8——子組(子模式)

瀏覽:4日期:2022-09-16 08:05:17

子組通過圓括號分隔界定,并且它們可以嵌套。 將一個模式中的一部分標(biāo)記為子組(子模式)主要是來做兩件事情:

將可選分支局部化。比如,模式cat(arcat|erpillar|)匹配 ”cat”, “cataract”, “caterpillar” 中的一個,如果沒有圓括號的話,它匹配的則是 ”cataract”, “erpillar” 以及空字符串。將子組設(shè)定為捕獲子組(向上面定義的). 當(dāng)整個模式匹配后, 目標(biāo)字符串中匹配子組的部分將會通過?pcre_exec()()?的?ovector?參數(shù)回傳給調(diào)用者。 左括號從左至右出現(xiàn)的次序就是對應(yīng)子組的下標(biāo)(從 1 開始), 可以通過這些下標(biāo)數(shù)字來獲取捕獲子模式匹配結(jié)果。

比如,如果字符串 ”the red king” 使用模式((red|white) (king|queen))?進(jìn)行匹配, 模式匹配到的結(jié)果是 array(“red king”, ”red king”, “red”, “king”) 的形式, 其中第 0 個元素是整個模式匹配的結(jié)果,后面的三個元素依次為三個子組匹配的結(jié)果。 它們的下表分別為 1, 2, 3。

事實(shí)上,圓括號履行的兩種功能并不總是有用的。 經(jīng)常我們會有一種需求需要使用子組進(jìn)行分組, 但又不需要(單獨(dú)的)捕獲它們。 在子組定義的左括號后面緊跟字符串 ”?:” 會使得該子組不被單獨(dú)捕獲, 并且不會對其后子組序號的計算產(chǎn)生影響。比如, 如果字符串 ”the white queen” 匹配模式?((?:red|white) (king|queen)),匹配到的結(jié)果會是 array(“white queen”、“white queen”、“white queen”),的和 king|queen 這兩個子組。 捕獲子組序號的最大值是 99, 最大允許擁有的所有子組(包括捕獲的和非捕獲的)的最大數(shù)量為 200。

為了方便簡寫,如果需要在非捕獲子組開始位置設(shè)置選項, 選項字母可以位于 ? 和 : 之間,比如:

(?i:saturday|sunday)(?:(?i)saturday|sunday)

上面兩種寫法實(shí)際上是相同的模式。因為可選分支會從左到右嘗試每個分支, 并且選項沒有在子模式結(jié)束前被重置, 并且由于選項的設(shè)置會穿透對后面的其他分支產(chǎn)生影響,因此, 上面的模式都會匹配 ”SUNDAY” 以及 ”Saturday”。

在 PHP 4.3.3 中,可以對子組使用?(?P<name>pattern)?的語法進(jìn)行命名。 這個子模式將會在匹配結(jié)果中同時以其名稱和順序(數(shù)字下標(biāo))出現(xiàn), PHP 5.2.2中又增加了兩種味子組命名的語法:?(?<name>pattern)?和?(?’name’pattern)。

有時需要多個匹配可以在一個正則表達(dá)式中選用子組。 為了讓多個子組可以共用一個后向引用數(shù)字的問題,?(?|?語法允許復(fù)制數(shù)字。 考慮下面的正則表達(dá)式匹配Sunday:

(?:(Sat)ur|(Sun))day

這里當(dāng)后向引用 1 空時Sun?存儲在后向引用 2 中. 當(dāng)后向引用 2 不存在的時候?Sat?存儲在后向引用 1中。 使用?(?|修改模式來修復(fù)這個問題:

(?|(Sat)ur|(Sun))day

使用這個模式,?Sun和Sat都會被存儲到后向引用1中。

標(biāo)簽: PHP
相關(guān)文章:
主站蜘蛛池模板: 欧美一区二区三区小说 | 欧美精品久久久久久 | www.久草.com| 欧美一级黄色免费看 | 成人精品| 国产一区不卡在线观看 | 国产在线区 | 成人在线精品视频 | 91偷拍精品一区二区三区 | www.日日操 | 成人av网站在线观看 | 国产黄色在线 | 在线视频国产一区 | 好好的日在线视频 | 国产视频三区 | 国内毛片毛片毛片毛片 | 欧美一区二| 国产欧美精品一区二区三区 | 一级a爱片久久毛片 | 激情五月婷婷丁香 | 精品成人 | 亚洲 自拍 另类 欧美 丝袜 | 狠狠干综合视频 | 日本不卡免费新一二三区 | 国产精品爱久久久久久久 | 韩国欧洲一级毛片 | 久久精品一区二区三区四区 | 精品一区二区久久久久久久网站 | 亚洲欧美一区二区在线观看 | 日韩成人中文字幕 | 女人毛片a毛片久久人人 | 精品日韩一区二区三区 | 午夜影院在线观看免费 | 久久久青草婷婷精品综合日韩 | 99福利网| 精品一区二区三区在线视频 | 久久精品久久精品久久精品 | 中日av | www久久久 | 国产成人av在线 | 欧美日韩综合 |