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

如何用正则表达式匹配未被括号包裹的目标大写字符

提取未被括号包裹的目标大写字符组的正则方案

需求场景

现有如下格式的文本:

(GOOGL)  [ST]S (partial) 02/01/2024 03/01/2024 $1,001 - $15,000
(PHG)  [ST]P 02/12/2024 03/01/2024 $1,001 - $15,000
(PFE)  [ST] P 02/12/2024 03/01/2024 $1,001 - $15,000
(UL)
[ST]S 02/12/2024 03/01/2024 $1,001 - $15,000

需要提取每行中**未被圆括号/方括号包裹、前后至少有一个空格(或为独立单词)**的单个大写字符(即示例中的S、P、P、S),排除括号内的大写字符组(如GOOGL、ST)。

正则表达式方案

推荐使用以下正则,通过先匹配并跳过括号内内容,再捕获目标字符:

(?:\([^)]*\)|\[[^\]]*\])|(\b[A-Z]\b)

正则解释

  • (?:\([^)]*\)|\[[^\]]*\]):非捕获组,匹配所有圆括号或方括号内的完整内容(包括括号本身),这部分内容会被直接跳过,不参与结果捕获。
  • |(\b[A-Z]\b):分支匹配,捕获单个独立的大写字母(\b为单词边界,确保字母前后为非字母数字字符,比如空格、括号闭合符等),这就是我们需要的目标字符。

使用方法

在支持正则捕获的工具(如Python的re模块、Notepad++、VS Code等)中,执行正则匹配后,提取所有非空的捕获组1内容,即可得到目标的S、P、P、S。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 17:44:54