我有一个字符串,它是一段html段落,我想删除(使用String的方法replaceAll)包含单词“UPDATE”的段落,通常它们是以这种形式:
<p><a href="blabla">(UPDATE)<a></p>
但可能还有其他的,例如一些强大的部分。 因为普通段落几乎不可能包含确切的单词“UPDATE”,所以我只想找到一个正则表达式,它可以找到包含该单词的段落并将其删除
replaceAll("regex","");
你能帮我找到“正则表达式”吗?我对正则表达式并不擅长...
答案 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);
}
}