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

Python中re.search匹配正则表达式无结果问题求助

问题分析与解决

嘿,我一眼就发现问题所在啦——你的正则表达式里多了几个不该有的空格!仔细对比正则和目标字符串就能看出来:

  • 正则里写的是 ID = ss[\d]+-RA,但目标字符串里是 ID=ss59537-RA——ID和=之间、=和ss之间都没有空格
  • 同样,正则里的 Parent = ss[\d]+-RA;,目标字符串里是 Parent=ss59537-RA;,这里也多了不必要的空格

另外还有个小优化点:[\d] 可以直接写成 \d,因为 \d 本身就代表数字字符类,不需要额外套方括号。

修正后的代码

import re

# 去掉多余空格,优化正则写法
searchstr = re.compile(r'(ID=ss\d+-RA)(:)(exon:\d+)(;)(Parent=ss\d+-RA;)')
test = "ID=ss59537-RA:exon:0;Parent=ss59537-RA;"
match = re.search(searchstr, test)

print(match.group())  # 打印完整匹配内容
# 如果需要提取单个分组的内容,可以用 match.group(1)、match.group(2) 等

运行这段代码就能得到预期的匹配结果了。要是你不需要这么多独立分组,还可以把正则简化成更简洁的版本:

searchstr = re.compile(r'ID=ss\d+-RA:exon:\d+;Parent=ss\d+-RA;')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 03:28:07