2016-12-01 7 views
1

Stringで指定されたとおりのリンクに置き換えます。次のように 私のコードは次のとおりです。Java:正確に一致するURLのみを置き換えます。

String originalString = "<a target=\"_blank\" href=\"http://example.com/\"><span style=\"font-size: 12px;\">ABC</span></a>" 
      + "<a target=\"_blank\" href=\"http://example.com/contact/\"><span style=\"font-size: 12px;\">Contact</span></a>"; 

String replacedString = originalString.replace("http://example.com/", "link1"); 
System.out.println("Replaced String:" + replacedString); 


replacedString = "<a target="_blank" href="link1"><span style="font-size: 12px;">ABC</span></a><a target="_blank" href="link1contact/"><span style="font-size: 12px;">Contact</span></a>" 

requiredString = "<a target="_blank" href="link1"><span style="font-size: 12px;">ABC</span></a><a target="_blank" href="link2"><span style="font-size: 12px;">Contact</span></a>" 

私はreplacedStringとして出力を得ることが、必要な出力がrequiredStringようにする必要があります。

ありがとうございます。

+0

() ' – Imran

+0

文字列全体を置き換える場合は、正規表現を文字列の後ろに置いて、次のバックスラッシュまで移動させてください。 – XtremeBaumer

+0

ここで' link2'と置き換えますか? –

答えて

1

まで、引用符でURLを置き換え:// example.com/`そして`でReplaceAllを使用する:あなたは `HTTPのすべての出現を置き換えたい場合は

String replacedString = originalString.replace("\"http://example.com/\"", "\"link1\""); 
replacedString = replacedString.replace("\"http://example.com/contact/\"", "\"link2\""); 
+0

この1つは動作しません – XtremeBaumer

+0

説明は不明です...これは期待された結果をもたらしません。 (これは本当に問題ではありません) – AxelH

+0

これは動作していますが、link2を置き換える必要があります –

0

http://example.com/contact/にはhttp://example.com/が含まれています。この代わりに 使用:

String replacedString = originalString.replace("http://example.com/contact/", "link2"); 
String replacedString2 = replacedString.replace("http://example.com/", "link1"); 

replacedString2は、必要な出力

+0

replaceAll()も同じ答えを返しますが、両方のリンクを置き換えます。 しかし、私は "http://example.com/contact/"をlink2に置き換えるようにします –

+0

@TwinkleSoni私の答えを更新しました。それは今すぐ正しくなります – ItamarG3

+0

replaceAllは最初の引数としてregexpをとります。置き換えるのは –

-3

作業正規表現はJavaでhttp:\\/\\/example.com.*?(?=\\\\)です。それはhttp://example.comのすべての出現箇所に一致し、次のバックスラッシュ

関連する問題