【问题标题】:What is the Regular Expression to get all the newline characters from the end of the string从字符串末尾获取所有换行符的正则表达式是什么
【发布时间】:2021-01-10 00:41:52
【问题描述】:

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

我要找的是

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

新行可以是:\n\r\r\n,具体取决于操作系统,因此我们在此处使用 \s+

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

【问题讨论】:

    标签: java regex regex-group


    【解决方案1】:

    重点是,\s 在 Java 中默认匹配任何非 Unicode 空白(如果您使用 (?U)\s,它匹配任何 Unicode 空白)。

    你可以使用

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

    请参阅regex demo

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

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

    this regex demo

    这些模式意味着

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

    【讨论】:

    • $ 而不是\z,因为没有(?m) MULTILINE 标志也是一样的。
    • @Andreas 是的,在这种情况下,这些是同义词。
    猜你喜欢
    • 2018-06-18
    • 1970-01-01
    • 2010-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-25
    • 1970-01-01
    相关资源
    最近更新 更多