正则表达式替换=在java中的标签中的href属性之后

时间:2012-10-13 14:04:21

标签: java html regex

我做了一个正则表达式,在“a”标签中的“href”之后替换“=”:

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

问题是它只能替换href ...

之后的最后一次出现“=”

我做错了什么?

2 个答案:

答案 0 :(得分:2)

您需要将通配符从贪婪 .*更改为非贪婪 .*?。这将使你的正则表达式停止在第一个href=匹配,因此也匹配以下出现。

答案 1 :(得分:2)

如果您要将href参数中的链接替换为newURL,请使用

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

编辑:如果您想仅替换=代码中href后面的<a>,请使用

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