2

これが以前に尋ねられた場合は申し訳ありませんが、ウェブ上で回答が見つかりませんでした。この正規表現の逆を理解するのに苦労しています:

"\"[^>]*\">"

リンク以外のすべてを置き換えるには、replaceAll を使用します。したがって、次のようなタグがあるとします。

<p><a href="http://www.google.com">Google</a></p>

これを満たす正規表現が必要です:

s.replaceAll(regex, "");

この出力を得るには:

http://www.google.com

これを行うためのより良い方法があることは知っていますが、正規表現を使用する必要があります。どんな助けでも本当に感謝しています、ありがとう!

4

3 に答える 3

16

を使用する必要はありませんreplaceAll。次のようなパターン グループを使用することをお勧めします。

Pattern p = Pattern.compile("href=\"(.*?)\"");
Matcher m = p.matcher(html);
String url = null;
if (m.find()) {
    url = m.group(1); // this variable should contain the link URL
}

HTML に複数のリンクがある場合はm.find()、ループで実行します。

于 2011-11-29T08:44:57.443 に答える
0

文字列内にそのようなリンクが常に 1 つある場合は、次を試してください。

"(^[^\"]*\")|(\"[^\"]*)$"
于 2011-11-29T08:45:09.503 に答える