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

如何用正则表达式提取以带括号字符串为结束锚点的子串?

解决正则中括号转义导致的匹配问题

直接给你可行的正则方案,再讲清楚问题出在哪:

  1. 通用正则表达式(适配大多数正则引擎):

    (?<=of\s).*?(?=\s\("Customer"\))
    

    如果是在需要双反斜杠的语言(比如Java、Python字符串)里,要写成:

    (?<=of\\s).*?(?=\\s\\("Customer"\\))
    
  2. 为什么你之前的写法不行:

    • 没考虑of和公司名、公司名和("Customer")之间的空格,直接用.*会把多余内容也匹配进来
    • .*是贪婪匹配,可能会超出目标内容范围,换成.*?非贪婪模式,会在遇到第一个("Customer")时就停止匹配
    • 部分环境里单个反斜杠会被字符串解析成转义符,所以需要双写反斜杠才能让正则引擎识别到转义的括号
  3. 示例验证:
    假设你的原始字符串是:

    "Invoice of SMITH PSYCHIATRIC, INC. ("Customer") - Q3"
    用上面的正则就能精准提取出SMITH PSYCHIATRIC, INC.

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 15:30:58