You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java正则表达式如何仅替换输入文件中特定位置的撇号

倒排索引文本解析撇号处理解决方案

可以通过多轮正则替换实现你要求的撇号区分处理逻辑,无需调整原有拆分逻辑,只需要在原有特殊字符替换前新增撇号规则处理步骤即可。

具体实现步骤

  • 第一步:移除成对包裹单词的单撇号,比如将'Brutus'直接替换为Brutus
  • 第二步:移除单词前后的双撇号,比如将''At直接替换为At
  • 第三步:将除字母、空格、合法撇号之外的所有特殊字符替换为空格,避免单词合并问题
  • 第四步:清理多余连续空格后转小写,按空格拆分得到单词数组

完整Java代码示例

String rawInput = value.toString();
String processedText = rawInput
    // 移除成对包裹单词的单撇号
    .replaceAll("'([a-zA-Z]+)'", "$1")
    // 移除单词前后的双撇号
    .replaceAll("''(?=[a-zA-Z])|(?<=[a-zA-Z])''", "")
    // 替换其他所有非合法字符为空格
    .replaceAll("[^a-zA-Z ']", " ")
    // 清理多余连续空格
    .replaceAll("\\s+", " ")
    .trim()
    .toLowerCase();
// 拆分得到单词数组
String[] words = processedText.split(" ");

效果验证

用你给出的示例输入测试:

输入:'twas, 't,[order'd], king's, o', 'Brutus!', ''At
处理后输出:'twas 't order'd king's o' brutus at
完全符合预期处理结果。

内容的提问来源于stack exchange,提问作者ShadowSeal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 22:06:05