精華區beta RegExp 關於我們 聯絡資訊
我寫了一個要抓option value中的字串的regexp 是用要php的preg_match_all抓 <option value="IamTarget">IamTarget(目標)</option> <option value="IamTarget2">IamTarget2(目標2)</option> 我用的RegExp是(忘了是參考到版上那一篇的) "!&lt;option value=.*?&gt;(.*?)(\(.*?\))?&lt;/option&gt;!is"; 問1:那個!與!is是什麼意思啊? 出來的結果是可以成功抓到我要的字串如下: 問2:有沒有其他建議的php Regexp寫法? Array ( [0] => Array ( [0] => <option value='IamTarget'>IamTarget(目標)</option> [1] => <option value='IamTarget2'>IamTarget2(目標2)</option> ) [1] => Array ( [0] => IamTarget [1] => IamTarget2 ) [2] => Array ( [0] => (目標) [1] => (目標2) ) ) 感謝各位大大! -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.83.216.112
Geniusking:補充:我的html有先htmlspecialchars過 08/04 10:14
KC73:PHP沒有規定RegExp要用 /.../ 包起來,只要用兩個一樣的東西包 08/06 00:15
KC73:就可以了,所以你把 ! 換成 /,應該就看的懂了 08/06 00:16
KC73:記得原先的 / 就要改成 \/ 08/06 00:29
> -------------------------------------------------------------------------- < 作者: arrack (Arrack Tseng) 看板: RegExp 標題: Re: [問題] preg_match_all中的! !is是什麼? 時間: Sat Aug 8 03:05:33 2009 ※ 引述《Geniusking (真理斯金)》之銘言: : 我寫了一個要抓option value中的字串的regexp : 是用要php的preg_match_all抓 : <option value="IamTarget">IamTarget(目標)</option> : <option value="IamTarget2">IamTarget2(目標2)</option> : 我用的RegExp是(忘了是參考到版上那一篇的) : "!&lt;option value=.*?&gt;(.*?)(\(.*?\))?&lt;/option&gt;!is"; : 問1:那個!與!is是什麼意思啊? !有人回答你了 另外!單獨在PHP中是not的意思 i是不分大小寫 s是"."也包含\n 備註: 一般情況下"."不會包含搜尋\n \r) 也就是說 "a b" 這樣子下/^.*$/,是false /^.*$/s 是true 另外.在php中是連接字元,不要搞混了XD 更多資訊請參考 http://tw.php.net/manual/en/reference.pcre.pattern.modifiers.php -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.85.9.173