0

一連のhtml段落である文字列があり、「UPDATE」という単語を含む段落を(StringのメソッドreplaceAllを使用して)削除したいのですが、通常は次の形式です。

<p><a href="blabla">(UPDATE)<a></p>

しかし、他にもある可能性があります。たとえば、いくつかの強力なセクションです。通常の段落に「UPDATE」という正確な単語が含まれていることはほとんど不可能なので、この単語を含む段落を見つけて削除できる正規表現を見つけたいと思います。

replaceAll("regex","");

「正規表現」の部分を見つけるのを手伝ってもらえますか?私は正規表現がまったく得意ではありません...

4

1 に答える 1

4

これがあなたが探しているものだと思います。。*を使用する必要がありますか?。*の代わりに、検索が貪欲ではなく怠惰になるためです。

public class Test {

    public static void main(String[] args) {
        String haystack = "<p><a href='bla'>(UPDATE)</a></p><p><a href='bla'><strong>(UPDATE)</strong></a></p><p><a href='bla'><strong>(Non uppercase 'update' to show this match is exact)</strong></a></p><p><a href='bla'><strong>This does not contain the word you're looking for</strong></a></p>";
        String regex = "<p>.*?(UPDATE).*?</p>";

        String result = haystack.replaceAll(regex, "");
        System.out.println("Result: " + result);
    }
}
于 2012-10-10T08:14:48.513 に答える