从html字符串中删除一些段落

时间:2012-10-10 07:58:24

标签: java android regex

我有一个字符串,它是一段html段落,我想删除(使用String的方法replaceAll)包含单词“UPDATE”的段落,通常它们是以这种形式:

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

但可能还有其他的,例如一些强大的部分。 因为普通段落几乎不可能包含确切的单词“UPDATE”,所以我只想找到一个正则表达式,它可以找到包含该单词的段落并将其删除

replaceAll("regex","");

你能帮我找到“正则表达式”吗?我对正则表达式并不擅长...

1 个答案:

答案 0 :(得分: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);
    }
}