Java 使用正则表达式查找至少包含一个字母的文本文件的所有关键字
我想编写一个正则表达式来删除文本文件中至少没有一个字母的所有标记。我使用OpenNLP标记器提取文本文件的标记。例如,标记90-87,65@7, ---, 8/0, ? 从给定文本中删除 我试着跟随这些页面,然后;但是我找不到我想要的表达方式。例如,下面的代码将在11月中旬删除令牌anti age 但是,我不知道如何防止删除像anti age这样的代币Java 使用正则表达式查找至少包含一个字母的文本文件的所有关键字,java,regex,Java,Regex,我想编写一个正则表达式来删除文本文件中至少没有一个字母的所有标记。我使用OpenNLP标记器提取文本文件的标记。例如,标记90-87,65@7, ---, 8/0, ? 从给定文本中删除 我试着跟随这些页面,然后;但是我找不到我想要的表达方式。例如,下面的代码将在11月中旬删除令牌anti age 但是,我不知道如何防止删除像anti age这样的代币 问题出在哪里?表达式与仅由一个或多个ASCII字母组成的字符串匹配。它不允许连字符、撇号等 要匹配不包含空格和至少一个字母的字符串,可以使用 w
问题出在哪里?表达式与仅由一个或多个ASCII字母组成的字符串匹配。它不允许连字符、撇号等 要匹配不包含空格和至少一个字母的字符串,可以使用
word.matches("\\S*\\pL\\S*")
看
\S*
模式匹配零个或多个非空白字符,\pL
匹配任何Unicode字母。当您说“至少一个字符”时,是指“至少一个字母”吗?因为9
、-
、@
和/
也都是Unicode字符。请指定需要保留的令牌类型,即制定要求,而不是示例。顺便说一句,您可能正在寻找word.matches(“\\S*\\pL+\\S*”)
@Andreas是的,我指的是一个字母。@WiktorStribiżew我想要至少有一个字母的代币。?像那样?
word.matches("\\S*\\pL\\S*")