2

「a」タグの「href」の後に「=」を置き換える正規表現を作成しました。

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

問題は、それが「=」の最後の出現をhref..の後に置き換えるだけであるということです。

私は何を間違えましたか?

4

2 に答える 2

2

ワイルドカードを欲張り .*から 欲張りに変更する必要があります.*?href=これにより、正規表現が最初の一致で停止するため、次のオカレンスにも一致します。

于 2012-10-13T14:08:07.193 に答える
2

hrefパラメンターのリンクをに置き換えたい場合はnewURL

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

編集:タグのすぐ=後ろhrefを置き換えたい場合は、<a>

output.replaceAll("(?i)(<a[^>]*?\\shref\\s*)=", "$1" + replacement); 
于 2012-10-13T14:10:25.310 に答える