【发布时间】:2016-02-18 18:30:54
【问题描述】:
我想编写一个正则表达式来删除文本文件中没有至少一个字母的所有标记。我使用 OpenNLP 标记器来提取我的文本文件的标记。例如,标记 90-87、65@7、---、8/0、? 已从给定文本中删除。
我尝试关注这些页面1、2 和3;但我找不到我想要的表达方式。例如下面的代码删除令牌anti-age, 11月中旬。
String[] tokens = t.getTokens(sen);
for (String word : tokens)
if((!isstopWord(word)) && word.matches("[a-zA-Z]+"))
bufferedw.append(word+"\n");
但是,我不知道如何防止删除诸如 anti-age 之类的标记。
问题出在哪里?
【问题讨论】:
-
当您说“至少一个字符”时,您的意思是“至少一个字母”吗?因为
9、-、@和/也是Unicode字符。 -
请说明您需要保留什么样的令牌,即制定要求,而不是示例。顺便说一句,也许,您正在寻找
word.matches("\\S*\\pL+\\S*")。 -
@Andreas 是的,我的意思是一封信。
-
@WiktorStribiżew 我想要至少有一个字母的令牌。
-
ideone.com/f3RR8i?像这样?