为了账号安全,请及时绑定邮箱和手机立即绑定

具有最大限额的可选字符的正则表达式-python

具有最大限额的可选字符的正则表达式-python

白衣染霜花 2023-09-26 14:42:01
我对正则表达式非常陌生,手头有一个问题,我需要以允许“A”或“G”发生但不能同时发生的方式开发一种模式。我写了这个模式:r'ACC[A]?[G]?CCG'“A”和“G”是可选的,但我想如果发生“A”,则停用 [G]?反之亦然,这样他们就不会相继出现。解决这个问题的最佳方法是什么?
查看完整描述

5 回答

?
MMMHUHU

TA贡献1834条经验 获得超8个赞

使用替代方案

r'ACC(A|G)?CCG'

使用字符类

r'ACC[AG]?CCG'


查看完整回答
反对 回复 2023-09-26
?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

这?


if "A" in myString:

  myString.replace("G", "")

或这个?


A = False

G = False


for each in myString:

  if each == "A":

    if not A:

      temp += each

    A = True


  elif each == "G":

    if not G:

      temp += each

    G = True

      

  else:

    temp += each


myString = temp


查看完整回答
反对 回复 2023-09-26
?
慕的地8271018

TA贡献1796条经验 获得超4个赞

要匹配 A 或 G 但不能同时匹配两者,您可以使用字符类并省略使用? {1}and|

ACC[AG]CCG

正则表达式演示

更新后的代码可能看起来是r'ACC[AG]CCG'


查看完整回答
反对 回复 2023-09-26
?
Helenr

TA贡献1780条经验 获得超3个赞

我假设您的意思是您不希望“A”或“G”在一起,而不是“A”或“T”,这意味着您希望您的模式匹配 或 ,ACCACCGACCGCCG不匹配ACCAGCCG,这是正确的吗?

如果是这样,这种方法应该有效:

re.search(r"ACC[A|G]?CCG", text)


查看完整回答
反对 回复 2023-09-26
?
侃侃尔雅

TA贡献1801条经验 获得超15个赞

r'ACC[A|G]?CCG'

A 或 G 匹配零次或一次

测试正则表达式的一个好网站是https://regex101.com/,其中包含一个解释其工作原理的部分以及正则表达式的快速参考


查看完整回答
反对 回复 2023-09-26
  • 5 回答
  • 0 关注
  • 78 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信