从字符串末尾获取所有换行符的正则表达式是什么

What is the Regular Expression to get all the newline characters from the end of the string

我已经尝试使用 [\s]+$(?:$|\s)+$ 但我没有得到想要的输出。

我要找的是

String str ="this is a string ending with multiple newlines\n\n\n" 

新行可以是:\n\r\r\n 取决于 OS 所以我们在这里使用 \s+

我需要从字符串末尾找到所有换行符 我必须在 Java 代码

中使用它

要点是 \s 在 Java 中默认匹配任何 non-Unicode 空格(如果使用 (?U)\s 它匹配任何 Unicode 空格)。

您可以使用

String regex = "\R+$";
String regex = "\R+\z";

参见regex demo

如果需要在字符串末尾获取每个单独的换行符序列,可以使用

String regex = "\R(?=\R*$)";

this regex demo

这些模式意味着

  • \R+ - 一个或多个换行序列
  • $ - 在字符串的末尾(\z 匹配字符串的末尾,在这种情况下效果相同)
  • \R(?=\R*$) - 任何换行符序列后跟零个或多个换行符序列直到整个字符串的末尾。