我做了一个正则表达式,在“a”标签中的“href”之后替换“=”:
output.replaceAll("(<a.*)href=(.*>)", "$1href" + replacemantstring+ "$2");
问题是它只能替换href ...
之后的最后一次出现“=”我做错了什么?
答案 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);