Java正则表达式替换与特定文本匹配的行
我有这样的想法:Java正则表达式替换与特定文本匹配的行,java,regex,Java,Regex,我有这样的想法: 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 及 我应该在正则表达式中附加什么才能得到 foo foo foo 在\n之后使用量词?。它意味着没有或只有一次 (?s)bar\n? 非常
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
及
我应该在正则表达式中附加什么才能得到
foo
foo
foo
在
\n
之后使用量词?
。它意味着没有或只有一次
(?s)bar\n?
非常感谢你。您的解决方案在末尾给了我一个空行,但这不是问题,通过添加trim
s.replaceAll((?s)bar\n?,“”)解决了它。trim()
删除所有\nbar
而不是bar\n
更有意义。在这种情况下,不需要删除尾随的\n
(?s)bar\n?