gpt4 book ai didi

java - 用户正则表达式(取消)匹配所有长度超过特定值的单词

转载 作者:行者123 更新时间:2023-11-30 07:54:40 25 4
gpt4 key购买 nike

关于 Java RegEx 的问题:

我有一个分词器,我只想返回长度高于特定长度的分词。

例如:我需要返回此文本中超过 1 个字符的所有标记:“这是一个文本。”

我需要获得 3 个标记:“This”“is”“text”不需要以下标记:“a”“.”。请注意,该字符串可以包含任何字符(不仅是 alpha-bet 字符)

我试过这段代码,但我不确定如何完成它:

    String lines[]  = {"This is o n e l e tt e r $ % ! sentence"};


for(String line : lines)
{
String orig = line;

Pattern Whitespace = Pattern.compile("[\\s\\p{Zs}]+");
line = Whitespace.matcher(orig).replaceAll(" ").trim();
System.out.println("Test:\t'" + line + "'");

Pattern SingleWord = Pattern.compile(".+{1}"); //HOW CAN I DO IT?
SingleWord.matcher(line).replaceAll(" ").trim();
System.out.println("Test:\t'" + line + "'");



}

谢谢

最佳答案

为什么不这样使用 \w{2,} :

String line = "This is o n e l e tt e r $ % ! sentence";

Pattern pattern = Pattern.compile("\\w{2,}");
Matcher matcher = pattern.matcher(line);
while (matcher.find()) {
System.out.println(matcher.group());
}

输出

This
is
tt
sentence

编辑

然后你可以使用这个[A-Za-z0-9_@.-]{2,}你可以指定你不想避免的特殊字符,或者你可以使用[^\s]{2,}\S{2,} a non-whitespace character :

输入

This is o email@gmail.com n e l e tt e r $ % ! sentence

输出

This
is
email@gmail.com
tt
sentence

关于java - 用户正则表达式(取消)匹配所有长度超过特定值的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43898039/

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