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

正则表达式匹配问题:如何从指定字符串中提取血型标识A+

问题分析与解决

你的正则匹配失败有两个核心问题:

  • 末尾多余的\w+:它要求匹配完(A+)之后,必须跟着字母、数字或下划线,但原字符串A positive (A+)里(A+)后面没有任何符合\w的字符,直接导致整个正则无法匹配成功。
  • 正则目标偏离:你写的(\([a-zA-Z]+(\+|-)\))\w+是先匹配整个带括号的(A+),再找后续字符,完全不符合你要提取括号内A+的需求。

正确的正则方案

方案1:分组提取括号内的血型标识

使用正则:\(([a-zA-Z]+[+-])\)

  • \(:转义匹配左括号(避免被当作正则分组符号)
  • ([a-zA-Z]+[+-]):分组捕获血型内容,匹配1个以上字母(如A、B)加上+或-
  • \):转义匹配右括号

匹配后,从分组1就能拿到A+。

方案2:直接匹配括号内的内容(无需分组)

使用正则:(?<=\()[a-zA-Z]+[+-](?=\))

  • (?<=\():正向预查,确保前面是左括号
  • [a-zA-Z]+[+-]:匹配血型标识
  • (?=\)):正向预查,确保后面是右括号

这个正则会直接匹配到A+,不需要额外提取分组。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 19:18:20