正則表達式中的(.*)
和(.*?)
有什麼不同?正則表達式中(。*)和(。*?)之間的區別是什麼?
我用下面的字符串:
<select name="show">
<option value="all" >all php.net sites</option>
<option value="local" >this mirror only</option>
<option value="quickref" selected="selected">function list</option>
<option value="manual" >online documentation</option>
<option value="bugdb" >bug database</option>
<option value="news_archive">Site News Archive</option>
<option value="changelogs">All Changelogs</option>
<option value="pear" >just pear.php.net</option>
<option value="pecl" >just pecl.php.net</option>
<option value="talks" >just talks.php.net</option>
<option value="maillist" >general mailing list</option>
<option value="devlist" >developer mailing list</option>
<option value="phpdoc" >documentation mailing list</option>
</select>
正則表達式:/<option\svalue=(.*)>/s
返回一個結果,其所有的選項值一個字符串。
正則表達式:/<option\svalue=(.*?)>/s
返回13個結果。
通過觀察輸出,我發現.*
搜索從最後和.*?
搜索從一開始是這是一個正確的假設?
http://stackoverflow.com/questions/3075130/difference-between-and-for-regex/3075532#3075532 – 2013-03-11 04:33:46