2012-10-13 73 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”之后。对不起,如果它不清楚,并感谢您的工作:) –