我需要JavaScript中的正則表達式,它執行以下操作。忽略HTML實體的正則表達式
那些不是HTML實體部分的a的實例應替換爲w。
例:
abc should change to wbc
aabacaa should change to wwbwcww
&abcaa& should change to &wbcww&
等。
我正在使用JavaScript。
任何幫助表示讚賞。
我需要JavaScript中的正則表達式,它執行以下操作。忽略HTML實體的正則表達式
那些不是HTML實體部分的a的實例應替換爲w。
例:
abc should change to wbc
aabacaa should change to wwbwcww
&abcaa& should change to &wbcww&
等。
我正在使用JavaScript。
任何幫助表示讚賞。
試試這個:
"&abcaa&".replace(/&[^;]+;|a/g, function($0) {
return $0 === "a" ? "w" : $0;
})
整潔!我真的應該學習JavaScript。 – 2010-02-09 12:26:02
這不會將& b轉換爲w & b – Varun 2010-02-09 12:54:42
@Varun:是的。 – 2010-02-09 13:03:10
非正則表達式的方式,在您最喜愛的編程語言,分割你的字符串「&一」(或&
),更換分裂的項目,然後再加入回如在Python
>>> s="&abcaa&"
>>> '&a'.join([ i.replace("a","w") for i in s.split("&a") ])
'&wbcww&'
作爲一個更普遍的答案,寫正則表達式時,我做的第一件事就是去http://rubular.com打下了幾個測試的字符串。然後,我編寫並重新編寫正則表達式,直到它滿足需要。
是的,我知道Rubular是一個Ruby regex站點,但是對於大多數語言(我認爲Perl使用擴展語法),RegExp語法非常相似。我已成功使用Rubular來測試Java RegExps。
你是否需要考慮所有HTML實體(如'¶')?或者只是'&'。如果你需要考慮所有問題,我的答案是不正確的(我會刪除它)。 – 2010-02-09 12:21:18
你想用什麼工具? – Vijay 2010-02-09 12:23:57