Java正则表达式在第一行和所有剩余行中拆分文本

时间:2015-03-05 02:06:00

标签: java regex string multiline

给定由多行(包括空行)组成的多行文本字符串,最有效的正则表达式

  1. 完全匹配字符串,
  2. 将字符串拆分为2组,分别由第一行和后面的所有内容组成?
  3. 尝试像

    这样的简单表达式
    (?m)(.*)((?:\s|.)*)
    

    不能超过某个字符串长度(只有几百个字符),导致堆栈溢出(!)。之后的许多变化,同样的问题仍然存在......

2 个答案:

答案 0 :(得分:2)

我不确定为什么你必须使用正则表达式,但是如果你需要将它分成两组,我会匹配所有内容,直到可能的换行序列,然后是所有内容......

(.*)[\r\n]*((?s).*)

答案 1 :(得分:1)

使用限制拆分可以轻松完成此操作

String[] a = str.split("\\R", 2);