0

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

<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 回答