我需要处理一些错过撇号的句子.
例如:
项目是假的.卖方声称它是真实的而且不是
它那假的,也没有照片,你可以T看到马林鱼,发回等待退款.
如何使用正则表达式来查找"不能","不能","没有","不是","它是"等等.
注意:
"它"和"不能"在这里可能会很棘手.
例如:
"我能讲故事"vs"我现在什么都做不了"
我们不应该在第一句中添加撇号
我建议你不要试图在这里进行正则表达式奥运会,而是用正确的替换品替换每个破损的收缩.您可以定义一个地图,将每个损坏的收缩映射到其替换.然后,迭代该映射并将每个更正应用于要更正的文本.
String input = "I can t do it because it s not raining and it doesn t make sense.";
Map<String, String> cnts = new HashMap<>();
cnts.put("doesn t", "doesn't");
cnts.put("can t", "can't");
cnts.put("haven t", "haven't");
cnts.put("aren t", "aren't");
cnts.put("it s", "it's");
cnts.put("isn t", "isn't");
for (Map.Entry<String, String> entry : cnts.entrySet()) {
String start = entry.getKey();
String end = entry.getValue();
input = input.replaceAll("\\b" + start + "\\b", end);
}
System.out.println(input);
Run Code Online (Sandbox Code Playgroud)
输出:
I can't do it because it's not raining and it doesn't make sense.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
98 次 |
| 最近记录: |