亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

關于正則匹配,preg_match()函數是如何運作的?

我先是寫了以下代碼,

<?php
$subject?=?"[email protected]";
//在這里補充代碼,實現正則匹配,并輸出郵箱地址
$pattern='/\w+@\w+\.(com||cm)/';
preg_match($pattern,$subject,$match);
//echo?$match[0];
print_r($match);

結果是:
Array
(
????[0]?=>[email protected]
????[1]?=>?com
)
有兩個,第二個是com
然后我修改了一下正則表達式;代碼如下:
<?php
$subject?=?"[email protected]";
//在這里補充代碼,實現正則匹配,并輸出郵箱地址
$pattern='/\w+@\w+\.\w+/';
preg_match($pattern,$subject,$match);
//echo?$match[0];
print_r($match);

結果是:
Array
(
????[0]?=>[email protected]
)
就沒有[1]了。
為什么呢?
而且,我發現例子里的:
$subject?=?"abcdef";
$pattern?=?'/a(.*?)d/';
preg_match($pattern,?$subject,?$matches);
print_r($matches);?//結果為:Array?(?[0]?=>?abcd?[1]?=>?bc?)
例子里輸出的bc是abcd的中間兩個,而我第一個代碼輸出的com是郵箱的末尾。這是為什么?


正在回答

0 回答

添加的圓括號相當于給要匹配的內容分組,preg_match()是把整體匹配和分組匹配的內容都輸出了

$subject?=?"[email protected]";

$pattern='/(\w+)@(\w+)\.(\w+)/';

你把正則改成這樣輸出下,我想你應該就明白了

1 回復 有任何疑惑可以回復我~
#1

蝸牛的殼 提問者

嗯,確實如此!非常感謝!
2016-02-28 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

關于正則匹配,preg_match()函數是如何運作的?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號