2013-09-25 52 views
0

文字:正則表達式替換span元素及其內容

god is a <span class="linkText0" name="name1">good</span> god my <span class="linkText1" name="name2">friend</span> 

預期(除去<span>..</span>給出的name匹配)

god is a good god my <span class="linkText1" name="name2">friend</span> 

我正則表達式:

/<span[^]+name=\"name2\">([^]+)</span>/g 

結果:

god is a friend 

http://regexr.com?36fbh

請幫助糾正

+3

請不要使用正則表達式來解析(或操作)HTML。

不能容納。扎爾戈是託尼小馬,他來了! http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 –

+0

你的正則表達式和你的期望不符......你的期望消除了跨度命名爲「name1」,但你的正則表達式尋找「name2」。如果你正在尋找「name1」:http://regexr.com?36fbk **但是,再次,你不應該使用RegExp操縱HTML。 – Passerby

+0

它應該是'/ ] + name = \「name2 \」>([^ <>] +)/g' ... **警告**不負責使用正則表達式解析html造成的任何損壞 – Anirudha

回答

0

使用這個表達式

/<span[^<>]+name=\"name2\">([^<>]+)</span>/g 

[^<>]除了<>

會匹配任何東西雖然你應該使用一個HTML解析器。