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

如何用Python正则匹配含多个'-'的字符串?蛋白序列匹配需求

蛋白序列中含可变'-'的字符串匹配与索引获取
  • 连续字符串的匹配你已经搞定了,直接用re.search加目标字符串就能拿到索引,这里不多啰嗦。

  • 针对中间可能插了多个'-'的目标序列,核心思路是把原目标的每个字符之间,加上匹配任意数量'-'的正则规则,具体操作如下:

比如你要匹配的目标是SQSVS,我们可以把它转换成正则模式S-*Q-*S-*V-*S,这个模式允许每个字符之间出现0个或多个'-',完美对应序列里的SQS---VS。

直接上代码:

import re

seq = "EIVL<strong>TQSPG</strong>TLSLSRA<strong>SQS---VS</strong>SSYLAWYQQKPG"

# 匹配连续字符串TQSPG
match_continuous = re.search('TQSPG', seq)
if match_continuous:
    print(f"连续字符串索引:{match_continuous.span()}")  # 输出 (4, 9)

# 匹配带可变'-'的SQSVS
target_with_dash = "SQSVS"
# 生成正则模式:字符间允许任意数量'-'
regex_pattern = '-*'.join(target_with_dash)
match_dash = re.search(regex_pattern, seq)
if match_dash:
    print(f"含'-'字符串索引:{match_dash.span()}")  # 输出 (22, 31)

如果需要限定'-'的数量(比如至少1个,或者最多3个),只需要把'-*'换成对应的规则:

  • 至少1个'-':用'-+'
  • 最多3个'-':用'-{0,3}'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 05:50:25