如何使用java正则表达式模式删除单词之前,之后和之间的所有标点符号

时间:2011-11-09 22:49:57

标签: java regex spell-checking

我正在编写拼写检查程序。基本上我将一个字符串拆分成单个的单词,然后比较每个字符串,看它是否在字典中。我设法使用以下代码删除单词前后的字符串...

private final static String PUNC_PREFIX = "^\\p{Punct}+";
private final static String PUNC_SUFFIX = "[\\p{Punct}&&[^']+$]";

private final String fixPrefix(String sendIn) {
    sendIn = sendIn.replaceFirst(PUNC_PREFIX, "");
    return sendIn;
}

private final String fixSuffix(String sendIn) {
    sendIn = sendIn.replaceFirst(PUNC_SUFFIX, "");
    return sendIn;
}

我现在的问题是像......“你好 - 那里”,“所有 - 第一”这样的词,用标点符号分开的词......它们被标记为错误拼写。但技术上你好,那里,所有,首先,所有拼写正确的单词......只是说它们之间存在标点,使它们“错误”。同时,我不想只是删除一个单词中的所有标点,因为对于“不”,“不会”,“不能”这样的单词,它需要将撇号标记为正确拼写。知道如何解决这个问题吗?

提前致谢

1 个答案:

答案 0 :(得分:0)

如果您没有找到带标点符号的内容,您可能会进行单独搜索。你会单独检查两个线程的单词(不再在一起)。如果第二次检查是真的;一切都很好。