Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.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_Spell Checking - Fatal编程技术网

如何使用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;
}
我现在的问题是,像“你好——好了”,“所有——第一”这样的词,用标点符号分开的词……它们被标记为拼写错误。但从技术上来说,你好,这里,所有,首先,所有的单词都拼写正确…只是它们之间有标点符号,使它们“错了”。同时,我不想去掉一个单词中的所有标点符号,因为对于像“不”、“不会”、“不能”这样的单词,它需要将撇号标记为拼写正确。你知道我该怎么解决这个问题吗


提前感谢

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