Java Regex替换与特定文本匹配的行[重复]
Posted
技术标签:
【中文标题】Java Regex替换与特定文本匹配的行[重复]【英文标题】:Java Regex replace a line matching a specific text [duplicate] 【发布时间】:2020-02-24 22:12:29 【问题描述】:我有这样的字符串:
String s = "foo\nbar\nfoo\nbar\nfoo\nbar";
如果打印到控制台看起来像这样:
foo
bar
foo
bar
foo
bar
我想删除等于“bar”的每一行。我试过了
System.out.println(s.replaceAll("(?s)bar", ""));
foo
foo
foo
和
System.out.println(s.replaceAll("(?s)bar\n", ""));
foo
foo
foo
bar
我应该在我的正则表达式中附加什么来获取
foo
foo
foo
【问题讨论】:
【参考方案1】:在\n
之后使用量词?
。这意味着没有或一次。
(?s)bar\n?
【讨论】:
非常感谢。您的解决方案最后给了我一个空行,但这不是问题,通过添加 trims.replaceAll("(?s)bar\n?", "").trim()
解决了
删除所有 \nbar
而不是 bar\n
更有意义。在这种情况下,您不需要删除尾随 \n
以上是关于Java Regex替换与特定文本匹配的行[重复]的主要内容,如果未能解决你的问题,请参考以下文章