如何使用java正则表达式删除以某个字符串开头的所有行?

如何使用java正则表达式删除以某个字符串开头的所有行?,java,regex,Java,Regex,文本大约有1000个字符 String text = "bla bla.................. ......................... ......................... file..................... ......................... .................

文本大约有1000个字符

String text = "bla bla..................
               .........................
               .........................
               file.....................
               .........................
               .........................
               file.....................
               .........................
有些行以单词“file”开头。如何删除所有此类行? 这是我试过的

text = text.replaceAll("file.*?//n", ""); 

您可以尝试以下方法:

text = text.replaceAll("(?m)^file.*", "");
  • (?m)
    :打开多行模式,以便行
    ^
    锚定的起点与每行的起点匹配
  • ^
    :匹配行的开头
  • 文件
    :匹配文本
    文件
    序列
  • *
    将所有内容匹配到行尾

因此,这将查找任何一行开头有单词
file
,然后匹配整行并用空字符串替换它。

每行之后是否有换行符?或者它只是在一个文本初始化中定义的,在代码中分成多行?有换行符。我只是试图直观地显示它的外观,如果在末尾添加
(?:\r?\n)?
,也可以删除换行符+1@Sniffer:谢谢,但很抱歉,我这次的评论速度有点快,因为如果匹配的行在字符串的末尾,它不会删除换行符。@CasimiritHippolyte LOL,这次我甚至没有考虑你的评论,我认为这是理所当然的。无论如何,我已经删除了这句话,但谢谢你。嗅探:我是个陷阱,不要相信任何人!