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

如何仅在字符串末尾有两个括号块时删除最后一个括号内的文本

解决方案

你可以用正则分组替换的方式实现需求,该方案兼容性强,适用于绝大多数支持正则的编程语言/工具:

核心正则

/(\([^)]+\))\s*\([^)]+\)(\.?)$/

规则说明

  • 正则末尾的$锚定字符串末尾,确保只匹配结尾的内容
  • 第一个捕获组(\([^)]+\))匹配倒数第二个完整的括号包裹内容
  • 中间的\s*\([^)]+\)匹配需要删除的最后一个括号包裹内容(含前面的空格)
  • 第二个捕获组(\.?)匹配结尾可选的英文句号
  • 替换时直接用$1$2(不同语言替换占位符可能略有差异,比如Python用\1\2),即可保留前一个括号和结尾标点,自动删除最后一个括号内容

代码示例(JavaScript)

function processStr(str) {
  return str.replace(/(\([^)]+\))\s*\([^)]+\)(\.?)$/, '$1$2');
}

// 测试用例1
console.log(processStr("Text (aaa) Text (bbb) Text (ccc) (ddd).")); 
// 输出:Text (aaa) Text (bbb) Text (ccc).

// 测试用例2
console.log(processStr("Text (aaa) Text (bbb) Text (ccc).")); 
// 输出:Text (aaa) Text (bbb) Text (ccc).

代码示例(Python)

import re

def process_str(s):
    return re.sub(r'(\([^)]+\))\s*\([^)]+\)(\.?)$', r'\1\2', s)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 02:24:01