伊莉討論區

標題: 正則表達式匹配一問 [打印本頁]

作者: llllik    時間: 2016-3-26 10:27 AM     標題: 正則表達式匹配一問

本帖最後由 llllik 於 2016-3-26 10:30 AM 編輯

請問一下,為什麼Output是 'ab',而不是 'abc'??


  1. <?php
  2. $pattern = '/^(?:[^"]*)(?!")/i';
  3. $str = 'abc":def,ghi';
  4. preg_match($pattern, $str, $matches);
  5. var_dump($matches);
  6. ?>
複製代碼
OutPut:
array (size=2)
  0 => string 'ab' (length=2)


作者: snowflying    時間: 2016-3-28 12:41 AM

$pattern = '/^(?:[^"]*)(?!")/i';


如果沒有 (?!")
那麼結果會是 abc
(?!") 會看下一個是不是 " (negative lookahead,若是的話則不符合)
abc 下一項是 ",所以只能匹配到 ab




歡迎光臨 伊莉討論區 (http://www4.eyny.com/) Powered by Discuz!