簡體   English   中英

RegExp返回空字符串

[英]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);  
}

我想要抓住3002Name 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM