[英]RegExp returning empty string
所以,這感覺很傻,但我無法理解它。
我試圖從日志文件中捕獲id代碼和名稱,該示例歸結為此
$line = "exten => 3002,2,Dial(/dev/null,20); Name Here";
$match = "/exten => ([0-9]{4}),2,Dial\(\/dev\/null,20\); ([\w]*)/Us";
if (preg_match($match, $line, $result))
{
var_dump($result);
}
我想要抓住3002
並Name Here
。 我得到的輸出就是這個
array(3) {
[0]=>
string(36) "exten => 3002,2,Dial(/dev/null,20); "
[1]=>
string(4) "3002"
[2]=>
string(0) ""
}
這種感覺的方式來傻乎乎地停留在得到,但我不知所措,so..I可以HAZ幫助PLZ?
我的第一個想法:
...([\w]*)/Us";
^ ^
| |
| \_ Ungreedy
|
\_ Zero or more
編輯:
如果你只想要剩下的那一行:
$match = "/exten => ([0-9]{4}),2,Dial\(\/dev\/null,20\); (.+)$/Us";
^^^^^
問題肯定是:( [\\ w] *)最后。
\\ w將不匹配空格,“Name Here”具有空格。
我建議([\\ w \\ s] *)匹配“在這里命名”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.