4

I have tried with [\s]+$ and (?:$|\s)+$ but i don't get the desired output.

What i am looking for is

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

the new line can be : \n or \r or \r\n depending on OS so we use \s+ here.

I need to find all the newline chars from end of the string and i have to use it in Java Code

backToStack
  • 101
  • 6

1 Answers1

4

The point is that \s, in Java, matches any non-Unicode whitespace by default (it matches any Unicode whitespace if you use (?U)\s).

You can use

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

See the regex demo.

If you need to get each individual line break sequence at the end of string, you can use

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

See this regex demo.

These patterns mean

  • \R+ - one or more line break sequences
  • $ - at the end of the string (\z matches the very end of string and will work identically in this case)
  • \R(?=\R*$) - any line break sequence followed with zero or more line break sequences up to the end of the whole string.
Wiktor Stribiżew
  • 607,720
  • 39
  • 448
  • 563