在标签href属性后,我做了一个正则表达式中的“一”的标签,以取代“=”的“href”之后:正则表达式替换= java中
output.replaceAll("(<a.*)href=(.*>)", "$1href" + replacemantstring+ "$2");
问题IST,它只是取代了过去在href之后出现“=”...
我做错了什么?
在标签href属性后,我做了一个正则表达式中的“一”的标签,以取代“=”的“href”之后:正则表达式替换= java中
output.replaceAll("(<a.*)href=(.*>)", "$1href" + replacemantstring+ "$2");
问题IST,它只是取代了过去在href之后出现“=”...
我做错了什么?
你需要从贪婪.*
到非贪婪.*?
改变你的通配符。这会使你的正则表达式停止在第一个href=
匹配,因此也匹配下面的发生。
如果你想与newURL
替换href
paramenter链接,然后使用
output.replaceAll("(?i)(<a[^>]*?\\shref\\s*=)(['"]).*?\\2", "$1$2" + newURL + "$2");
编辑:如果您想更换背后href
只是=
在<a>
标签,然后用
output.replaceAll("(?i)(<a[^>]*?\\shref\\s*)=", "$1" + replacement);
您能否提供带有预期输出的样本输入? –
您需要提供输入和预期输出。无法理解你到底想要什么。你发布的正则表达式不会取代任何东西。 –
太多的人回答没有阅读的问题,也没有标签... 3回答4是JavaScript的答案... –