1

HTMLページ上のすべてのリンクを、定義されたURLとクエリ文字列内の元のリンクに置き換えたいと思います。

次に例を示します。

"http://www.ex.com abc http://www.anotherex.com" 

次のように置き換える必要があります。

"http://www.newex.com?old=http://www.ex.com ABC http://www.newex.com?old=http://www.anotherex.com"

replaceAllを使用することを考えましたが、置換で正規表現パターンを再利用する方法が正確にわかりません。

4

2 に答える 2

2

何かのようなもの

String processed = yourString.replaceAll([ugly url regexp],"http://www.newex.com?old=$0")

$ 0は、正規表現のメインキャプチャグループへの参照です。Matcher.appendReplacementのドキュメントを参照してください

価値のある正規表現の場合、たとえばここから選択できます

于 2013-02-26T20:30:52.803 に答える
1

私は次のようなことをすることによってこれについて行きます:

List<String> allMatches = new ArrayList<String>();
Matcher m = Pattern.compile("regex here")
  .matcher(StringHere);
while (m.find()) {
allMatches.add(m.group());
}

for(String myMatch : allMatches)
{
  finalString = OriginalString.replace(myMatch, myNewString+myMatch);
}

私はこれのどれもテストしませんでした、しかしそれはあなたにそれに近づく方法のアイデアを与えるはずです

于 2013-02-26T20:30:35.957 に答える