如何使用java正则表达式模式删除一个单词之前、之后和中间的所有双关语
我正在写一个拼写检查程序。基本上,我将一个字符串拆分为单个单词,然后比较每个字符串,看看它是否在字典中。我用下面的代码删除了单词前后的字符串如何使用java正则表达式模式删除一个单词之前、之后和中间的所有双关语,java,regex,spell-checking,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)
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;
}
我现在的问题是,像“你好——好了”,“所有——第一”这样的词,用标点符号分开的词……它们被标记为拼写错误。但从技术上来说,你好,这里,所有,首先,所有的单词都拼写正确…只是它们之间有标点符号,使它们“错了”。同时,我不想去掉一个单词中的所有标点符号,因为对于像“不”、“不会”、“不能”这样的单词,它需要将撇号标记为拼写正确。你知道我该怎么解决这个问题吗
提前感谢如果找不到带有标点符号的内容,您可能会进行单独搜索。您可以单独检查两个线程单词(不再一起检查)。如果第二次检查为真;一切都很好