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

如何编写正则表达式去除连续重复的单个或两个单词

用正则移除R中连续重复的单个/两个单词

要实现移除句子中连续重复的单个或两个单词,保留首次出现的内容,可以使用以下正则方案:

正则表达式与代码实现

核心思路是捕获单个或两个连续单词的组,匹配其后重复的相同内容,并用首次出现的内容替换重复部分:

# 定义正则模式
pattern <- "\\b((\\w+\\s)?\\w+)\\s+\\1\\b"

# 测试字符串
string_a = "hello hello, how are you you?"
string_b = "goodbye world goodbye world, I am flying to the the moon!"

# 执行替换
gsub(pattern, "\\1", string_a)
gsub(pattern, "\\1", string_b)

输出结果

[1] "hello, how are you?"
[2] "goodbye world, I am flying to the moon!"

正则说明

  • \\b:单词边界,确保匹配完整的单词,避免误匹配单词的部分片段
  • ((\\w+\\s)?\\w+):捕获组,支持两种情况:
    • 单个单词:\\w+
    • 两个连续单词:\\w+\\s\\w+((\\w+\\s)?表示可选的第一个单词加空格)
  • \\s+:匹配重复组之间的一个或多个空格
  • \\1:引用前面捕获的内容,用首次出现的单词/单词组替换重复部分

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 02:50:21