亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

關于匹配頁面所有a標簽的正則寫法問題
高洛峰
高洛峰 2016-11-11 10:50:40
0
1
1046
$str = "<a href='http://www.baidu.com/index.php?id=1&name=user'></a>  
 <  a   href   =     'baidu.com'     > </a>";


$a = preg_match_all('/<(\s*)a\\1href\\1=\\1(\'|")\S*\\2\\1>/', $str,$arr);
p($arr);

請問我寫的正則哪里錯了?麻煩請指出錯誤,不用幫我寫另一個新的正則

<(\s)a(\s)href(\s)=(\s)(\'|")\S(\'|")(\s)>這樣就OK啦


高洛峰
高洛峰

擁有18年軟件開發(fā)和IT教學經驗。曾任多家上市公司技術總監(jiān)、架構師、項目經理、高級軟件工程師等職務。 網(wǎng)絡人氣名人講師,...

reply all(1)
三叔

主要是邏輯問題

\1表示引用第一個子表達式匹配到的值,并不是使用第一個子表達式的規(guī)則。具體到你的正則中:

//

如果第一個(\s*)匹配到了3個括號,那么你這個表達式會要求后面每個\1的地方都要匹配3個空格(多了少了都不行),而不是再次匹配(\s*)。我猜你這樣寫是想復用第一個子表達式吧?但是很遺憾這樣是不行的,必須把每個\\1替換為(\s*)或(\s+)。

你的正則中\(zhòng)\2的用法倒是正確的,原因同上。


Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template