Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用正则表达式查找至少包含一个字母的文本文件的所有关键字_Java_Regex - Fatal编程技术网

Java 使用正则表达式查找至少包含一个字母的文本文件的所有关键字

Java 使用正则表达式查找至少包含一个字母的文本文件的所有关键字,java,regex,Java,Regex,我想编写一个正则表达式来删除文本文件中至少没有一个字母的所有标记。我使用OpenNLP标记器提取文本文件的标记。例如,标记90-87,65@7, ---, 8/0, ? 从给定文本中删除 我试着跟随这些页面,然后;但是我找不到我想要的表达方式。例如,下面的代码将在11月中旬删除令牌anti age 但是,我不知道如何防止删除像anti age这样的代币 问题出在哪里?表达式与仅由一个或多个ASCII字母组成的字符串匹配。它不允许连字符、撇号等 要匹配不包含空格和至少一个字母的字符串,可以使用 w

我想编写一个正则表达式来删除文本文件中至少没有一个字母的所有标记。我使用OpenNLP标记器提取文本文件的标记。例如,标记90-87,65@7, ---, 8/0, ? 从给定文本中删除

我试着跟随这些页面,然后;但是我找不到我想要的表达方式。例如,下面的代码将在11月中旬删除令牌anti age

但是,我不知道如何防止删除像anti age这样的代币


问题出在哪里?

表达式与仅由一个或多个ASCII字母组成的字符串匹配。它不允许连字符、撇号等

要匹配不包含空格和至少一个字母的字符串,可以使用

word.matches("\\S*\\pL\\S*")


\S*
模式匹配零个或多个非空白字符,
\pL
匹配任何Unicode字母。

当您说“至少一个字符”时,是指“至少一个字母”吗?因为
9
-
@
/
也都是Unicode字符。请指定需要保留的令牌类型,即制定要求,而不是示例。顺便说一句,您可能正在寻找
word.matches(“\\S*\\pL+\\S*”)
@Andreas是的,我指的是一个字母。@WiktorStribiżew我想要至少有一个字母的代币。?像那样?
word.matches("\\S*\\pL\\S*")