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

Java regex to split text in first line and all remaining lines

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

  1. 完全匹配字符串,并且
  2. 将字符串分成两组,分别由第一行和随后的所有内容组成?

尝试像

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

超过一定的字符串长度(只有几百个字符)时不起作用,导致堆栈溢出 (!)。之后有很多变化,同样的问题仍然存在...

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

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

Split with limit 可以轻松做到这一点

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