gpt4 book ai didi

java - 在java中通过标点符号和空格等通过正则表达式拆分字符串

转载 作者:IT老高 更新时间:2023-10-28 20:46:25 26 4
gpt4 key购买 nike

我将这个文本文件读入 Java 应用程序,然后逐行计算其中的单词。现在我正在用

将线条分成单词
String.split([\\p{Punct}\\s+])"

但我知道我错过了文本文件中的一些单词。比如“can't”这个词应该分成“can”和“t”两个词。

应完全忽略逗号和其他标点符号并将其视为空格。我一直在尝试了解如何形成更精确的正则表达式来执行此操作,但我是新手,所以我需要一些帮助。

对于我所描述的目的,什么是更好的正则表达式?

最佳答案

你的正则表达式有一个小错误。试试这个:

String[] Res = Text.split("[\\p{Punct}\\s]+");

[\\p{Punct}\\s]+ 将字符类内部的 + 形式移到外部。否则,您也在 + 上进行拆分,并且不要将拆分字符组合成一行。

所以我得到了这个代码

String Text = "But I know. For example, the word \"can\'t\" should";

String[] Res = Text.split("[\\p{Punct}\\s]+");
System.out.println(Res.length);
for (String s:Res){
System.out.println(s);
}

这个结果

10
But
I
know
For
example
the
word
can
t
should

应该满足你的要求。

你也可以使用

String[] Res = Text.split("\\P{L}+");

\\P{L} 表示不是具有“字母”属性的 unicode 代码点

关于java - 在java中通过标点符号和空格等通过正则表达式拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7384791/

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