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

如何移除文本中忽略空格的停用词且保留原文本空格结构

忽略空格差异删除停用词的解决方案

核心思路是将停用词转换为能匹配任意数量空白间隔的正则表达式,同时转义停用词中的正则特殊字符,避免匹配逻辑出错,最终替换时保留原文本其他位置的空格。

步骤说明

  1. 转义正则特殊字符:停用词中如果包含.、*这类正则元字符,必须先转义,否则会被当成匹配规则的一部分,导致匹配错误。
  2. 替换空格为空白匹配规则:把停用词里的单个空格替换成\s+(匹配一个或多个空白字符),这样就能兼容文本中停用词部分的多空格情况。
  3. 执行替换:用生成的正则表达式在主文本中替换目标内容为空字符串。

Scala 实现代码

import java.util.regex.Pattern

def removeStopWordIgnoringSpaces(text: String, stopWord: String): String = {
  // 转义停用词中的正则特殊字符
  val escapedStopWord = Pattern.quote(stopWord)
  // 将停用词的空格替换为匹配任意数量空白的正则
  val regexPattern = escapedStopWord.replace(" ", "\\s+")
  // 执行替换操作
  text.replaceAll(regexPattern, "")
}

// 测试示例
val stopWord = "a wx.yz"
val text = "some text a wx.  yz extra ..."
val result = removeStopWordIgnoringSpaces(text, stopWord)
println(result) // 输出: some text  extra ...

其他语言示例(Java)

import java.util.regex.Pattern;

public class StopWordHandler {
    public static String removeStopWordIgnoringSpaces(String text, String stopWord) {
        String escapedStopWord = Pattern.quote(stopWord);
        String regexPattern = escapedStopWord.replace(" ", "\\s+");
        return text.replaceAll(regexPattern, "");
    }

    public static void main(String[] args) {
        String stopWord = "a wx.yz";
        String text = "some text a wx.  yz extra ...";
        System.out.println(removeStopWordIgnoringSpaces(text, stopWord));
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 00:47:10