Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java正则表达式替换与特定文本匹配的行_Java_Regex - Fatal编程技术网

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?