當我試圖2個不同的正則表達式使用相同的名稱合二爲一,得到了這樣的錯誤消息:了「兩個命名的子模式具有相同的名稱」組合2正則表達式爲一個
警告:的preg_match():編譯 失敗:兩個命名的子模式有 同名偏移量276 ...
一個正則表達式是這樣的:
'%<div class="artikkelen">[\s\S]*?<h2>(?P<title>[\s\S]*?)</h2>%'
個
其他看起來像這樣:
'%<div id="article">[\s\S]*?<h1>(?P<title>[\s\S]*?)</h1>%'
我可以通過以下方式沒有問題結合他們:
'%(<div class="artikkelen">[\s\S]*?<h2>(?P<title>[\s\S]*?)</h2>|<div id="article">[\s\S]*?<h1>(?P<title2>[\s\S]*?)</h1>)%'
但因爲我用2名,我不喜歡這種方式。我想知道是否有更好的方法來解決這個問題。提前致謝。
最好的問候, 盒(的Boxoft ...簡單&大)
給他們一個不同的名稱。 – Bombe 2009-09-14 10:00:37
這是PHP不使用Perl兼容正則表達式的許多痛苦地方之一。 – tchrist 2011-08-23 19:52:36