gpt4 book ai didi

Java正则表达式拆分保持收缩

转载 作者:行者123 更新时间:2023-12-01 04:57:57 24 4
gpt4 key购买 nike

当使用 split() 时,什么正则表达式可以让我保留所有单词字符,但也可以保留缩写,比如 don't won't。撇号两侧带有单词字符的任何内容,但删除任何前导或尾随撇号,例如“tis 或 dogs”。

我有:

String [] words = line.split("[^\\w'+]+[\\w+('*?)\\w+]");

但它保留了前导和尾随标点符号。

输入'现在是季节,为了 children 的幸福'。

将产生以下输出:这是 children 幸福的季节

有什么建议吗?

最佳答案

我认为:拆分:

  • 任一撇号 + 至少一个非单词字符 ['-]\\W+,
  • 任何非单词字符[^\\w'-]\\W*

    String line = "'Tis the season, for the children's happiness'";
    String[] words = line.split("(['-]\\W+|[^\\w'-]\\W*)");
    System.out.println(Arrays.toString(words));

这里我添加了 - 作为撇号的补充。

结果:

['Tis, the, season, for, the, children's, happiness']

添加开始和结束:

    String[] words = line.split("(^['-]|['-]$|['-]\\W+|[^\\w'-]\\W*)");

结果:

[, Tis, the, season, for, the, children's, happiness]

一开始会产生一个空字符串。

关于Java正则表达式拆分保持收缩,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13793192/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com