查看完整版本: 正則表達式匹配一問
頁: [1]

llllik 發表於 2016-3-26 10:27 AM

正則表達式匹配一問

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

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


<?php
$pattern = '/^(?:[^"]*)(?!")/i';
$str = 'abc":def,ghi';
preg_match($pattern, $str, $matches);
var_dump($matches);
?>OutPut:
array (size=2)
  0 => string 'ab' (length=2)
<div></div>

snowflying 發表於 2016-3-28 12:41 AM

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

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