开发者社区> 问答> 正文

正则表达式Java:连字符之间的所有空白

我有一个字符串:

-----test test----- testestestest testestest -----test test-----

我想用替换每个空格\n,但是我必须保留连字符之间的空格。这是完美的结果:

-----test test-----\ntestestestest\ntestestest\n-----test test-----

我尝试了很多不同的正则表达式,但是都没有用,这是我的最佳尝试。

Pattern ws = Pattern.compile("\\s(?![\-]*\-)");
Matcher matcher = ws.matcher(myString);
String result = matcher.replaceAll("\n");

有人可以帮我吗?

PS:我真的不明白,通过用括号(在字符串和正则表达式中)替换连字符,它可以正常工作...\s(?![^{]*})

展开
收起
垚tutu 2019-12-19 16:59:48 996 0
1 条回答
写回答
取消 提交回答
  • #include

    只需在行尾匹配空格:

    /\s$/
    
    

    这是代码:

    String result = myString.replaceAll("(?m)\\s$", "\\\\n");
    
    

    结果:

    -----test test-----\n
    testestestest\n
    testestest\n
    -----test test-----\n
    
    

    那就是你的代码:

    Pattern ws = Pattern.compile("\\s$", Pattern.MULTILINE);
    Matcher matcher = ws.matcher(myString);
    String result = matcher.replaceAll("\\\\n");
    
    2019-12-19 17:00:04
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载