為什么我加了括號(hào)就輸出2個(gè)了?
<?php
$subject = "my email is spark@imooc.com";
//在這里補(bǔ)充代碼,實(shí)現(xiàn)正則匹配,并輸出郵箱地址
$patten = "/(\w+@\w+.com)/";
preg_match($patten,$subject,$matches);
print_r($matches);
Array
(
[0] => spark@imooc.com
[1] => spark@imooc.com
)
2015-10-24
preg_match 函數(shù)本身定義所決定。第一次是全匹配,第二次是第一個(gè)子模式匹配結(jié)果
int preg_match ? ?( string $pattern ? , string $subject ? [, array &$matches ? [, int $flags = 0 ? [, int $offset = 0 ?]]] )
搜索subject與pattern給定的正則表達(dá)式的一個(gè)匹配.?
參數(shù)
pattern
要搜索的模式,字符串類型。
subject
輸入字符串。
matches
如果提供了參數(shù)matches,它將被填充為搜索結(jié)果。$matches[0]將包含完整模式匹配到的文本,$matches[1]將包含第一個(gè)捕獲子組匹配到的文本,以此類推。
flags
flags可以被設(shè)置為以下標(biāo)記值:
PREG_OFFSET_CAPTURE
? ? ? ? ?如果傳遞了這個(gè)標(biāo)記,對(duì)于每一個(gè)出現(xiàn)的匹配返回時(shí)會(huì)附加字符串偏移量(相對(duì)于目標(biāo)字符串的)。 ? ? ? ? ?注意:這會(huì)改變填充到matches參數(shù)的數(shù)組,使其每個(gè)元素成為一個(gè)由 ? ? ? ? ?第0個(gè)元素是匹配到的字符串,第1個(gè)元素是該匹配字符串 ? ? ? ? ?在目標(biāo)字符串subject中的偏移量。 ? ? ? ? ?
offset
通常,搜索從目標(biāo)字符串的開(kāi)始位置開(kāi)始??蛇x參數(shù) offset 用于 ? ? ?指定從目標(biāo)字符串的某個(gè)未知開(kāi)始搜索(單位是字節(jié))。
返回值
preg_match()返回 pattern 的匹配次數(shù)。 ?它的值將是0次(不匹配)或1次,因?yàn)閜reg_match()在第一次匹配后 ?將會(huì)停止搜索。