2012-10-13 119 views
2

在標籤href屬性後,我做了一個正則表達式中的「一」的標籤,以取代「=」的「href」之後:正則表達式替換= java中

output.replaceAll("(<a.*)href=(.*>)", "$1href" + replacemantstring+ "$2"); 

問題IST,它只是取代了過去在href之後出現「=」...

我做錯了什麼?

+0

您能否提供帶有預期輸出的樣本輸入? –

+0

您需要提供輸入和預期輸出。無法理解你到底想要什麼。你發佈的正則表達式不會取代任何東西。 –

+0

太多的人回答沒有閱讀的問題,也沒有標籤... 3回答4是JavaScript的答案... –

回答

2

你需要從貪婪.*非貪婪.*?改變你的通配符。這會使你的正則表達式停止在第一個href=匹配,因此也匹配下面的發生。

2

如果你想與newURL替換href paramenter鏈接,然後使用

output.replaceAll("(?i)(<a[^>]*?\\shref\\s*=)(['"]).*?\\2", "$1$2" + newURL + "$2"); 

編輯:如果您想更換背後href只是=<a>標籤,然後用

output.replaceAll("(?i)(<a[^>]*?\\shref\\s*)=", "$1" + replacement); 
+0

is this more efficient compared to the solution: () ? –

+0

yes, and when i do something like 'output = output.replaceAll("()", "$1href"+ "#" +"$2");' for 'asd'輸出是我想要的:'asd' –

+0

這就是我的問題的第一句話:「我做了一個正則表達式來替換所有」=「在」a「標籤」中的「href」之後。對不起,如果它不清楚,並感謝您的工作:) –