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

正则表达式匹配多字符串条件:捕获并修剪指定内容咨询

正则表达式解决方案:修剪末尾附加数据/保留纯文本

需求说明

需要处理两类字符串:

  • 第一类:修剪掉末尾的附加数据(如示例中括号内的人员信息)
  • 第二类:直接保留原纯文本

示例输入

Review / Sign Changes  (Doe,John Howard - 555-00-5555)
City & State for Current Visit

尝试的正则表达式(存在语法错误)

(?\<Group1\>(?:(.)  ())|.*
(?\<Group1\>*.\[a-zA-Z\] )|(.*)

期望输出

Review / Sign Changes
City & State for Current Visit

正确解决方案

可以用这个简洁的正则表达式匹配并提取目标内容:

^(.+?)(?:\s*\(.*\))?$

正则解释

  • ^:匹配行的起始位置
  • (.+?):非贪婪捕获任意字符(这就是我们要保留的核心文本)
  • (?:\s*\(.*\))?:可选的非捕获组,匹配末尾的空格+括号及括号内所有内容;?表示这部分内容可有可无
  • $:匹配行的结束位置

使用方式

在支持正则替换的工具/语言中,直接提取捕获组1的内容即可。比如在Python中:

import re

text = """Review / Sign Changes  (Doe,John Howard - 555-00-5555)
City & State for Current Visit"""

result = [re.sub(r'^(.+?)(?:\s*\(.*\))?$', r'\1', line) for line in text.split('\n')]
print('\n'.join(result))

如果使用命名捕获组(部分正则引擎支持),可以写成:

^(?<Group1>.+?)(?:\s*\(.*\))?$

提取时调用命名组Group1的内容即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 22:55:18