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

如何使用正则表达式提取字符串中ATG开头GGA结尾的子串?

问题解决

你写的正则里用了^和$,这俩是匹配整个字符串的开头和结尾的,你的目标子串是在原字符串中间的,所以肯定匹配不到。另外.+是贪婪匹配,就算去掉首尾锚点,也可能把两个符合条件的子串连起来匹配成一个,得不到正确结果。

改成下面的代码就行:

import re

s = "ATAATGCGTGGAATTATGACCGGAATC"
x = re.findall(r'ATG.*?GGA', s)
print(x)  # 输出: ['ATGCGTGGA', 'ATGACCGGA']

关键说明:

  • 去掉^和$:不需要限定整个字符串的首尾,只需要匹配字符串中符合规则的子串
  • 用.*?代替.+:.*?是非贪婪模式的任意字符匹配,会找到最短的以ATG开头、GGA结尾的子串,避免贪婪模式把两个结果合并成一个

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 11:45:34