我做了一个正则表达式来替换“a”标签中“href”之后的“=”:
output.replaceAll("(<a.*)href=(.*>)", "$1href" + replacemantstring+ "$2");
问题在于它只替换了最后一次出现的“=”在href ...
我做错了什么 ?
您需要将通配符从greedy .*
更改为non-greedy .*?
。这将使您的正则表达式在第一次href=
匹配时停止,因此也匹配以下出现。
如果要将参数中的链接替换href
为newURL
,请使用
output.replaceAll("(?i)(<a[^>]*?\\shref\\s*=)(['"]).*?\\2", "$1$2" + newURL + "$2");
编辑:如果你想在标签=
后面替换,然后使用href
<a>
output.replaceAll("(?i)(<a[^>]*?\\shref\\s*)=", "$1" + replacement);