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

正则表达式需求:移除匹配单词中的“window”子串

解决方案:提取单词并移除指定子串

其实这个需求拆成两步就很简单啦,我用Python来给你演示两种可行的方法,毕竟Python在正则和字符串处理上特别顺手:

方法一:先提取单词,再批量替换子串

这是最直观的思路——先用你已经写好的正则把符合要求的单词提取出来,再逐个移除每个单词里的window子串。如果需要统一转成小写(和你给出的示例结果一致),再加个.lower()就好:

import re

original_text = '1 2 3 ab AB úá awindow BCwindow'
# 第一步:提取符合规则的单词
matched_words = re.findall(r'[a-zA-Zá-ú]+', original_text)
# 第二步:移除每个单词中的"window",并转小写(可选)
processed_result = [word.replace('window', '').lower() for word in matched_words]

print(processed_result)
# 输出结果:['ab', 'ab', 'úá', 'a', 'bc']

方法二:正则匹配时直接捕获目标内容

如果你的场景里window在每个单词中只会出现一次,也可以用正则捕获组直接匹配window前后的内容,再拼接起来:

import re

original_text = '1 2 3 ab AB úá awindow BCwindow'
# 用非捕获组匹配window,捕获前后的有效字符
matched_pairs = re.findall(r'([a-zA-Zá-ú]*)(?:window)?([a-zA-Zá-ú]*)', original_text)
# 拼接捕获到的两部分,过滤空字符串并转小写
final_result = [''.join(pair).lower() for pair in matched_pairs if ''.join(pair)]

print(final_result)
# 输出结果:['ab', 'ab', 'úá', 'a', 'bc']

小说明

  • 方法一的兼容性更强,哪怕某个单词里多次出现window(比如windowawindow),也能一次性全部移除;
  • 方法二更偏向在匹配阶段完成处理,适合你这种window单次出现的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:29:22