Python 用于具有最大容差的可选字符的正则表达式
我对regex非常陌生,手头有一个问题,我需要开发一种模式,允许“a”或“G”发生,但不能同时发生 我已经写了这个模式:Python 用于具有最大容差的可选字符的正则表达式,python,regex,Python,Regex,我对regex非常陌生,手头有一个问题,我需要开发一种模式,允许“a”或“G”发生,但不能同时发生 我已经写了这个模式:r'ACC[A]?[G]?CCG' “A”和“G”是可选的,但我希望如果出现“A”,请停用[G]?反之亦然,所以他们不会在对方之后出现 解决这个问题的最佳方法是什么?r'ACC[A | G]?CCG' A或G匹配0或1次 一个测试你的正则表达式的好网站是,它包括一个解释它如何工作的部分,以及正则表达式的快速参考 if "A" in myString: m
r'ACC[A]?[G]?CCG'
“A”和“G”是可选的,但我希望如果出现“A”,请停用[G]?反之亦然,所以他们不会在对方之后出现
解决这个问题的最佳方法是什么?r'ACC[A | G]?CCG'
A或G匹配0或1次
一个测试你的正则表达式的好网站是,它包括一个解释它如何工作的部分,以及正则表达式的快速参考
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
我假设你的意思是你不想把“A”或“G”放在一起,而不是“A”或“t”,意思是你想让你的模式匹配
acccg
或acccgcg
,但不匹配acccagccg
,对吗
如果是这样,这种方法应该有效:
re.search(r“ACC[A | G]?CCG”,文本)
使用替代方案
r'ACC(A|G)?CCG'
使用字符类
r'ACC[AG]?CCG'
要匹配A或G,但不能同时匹配两者,可以使用字符类并使用
?
{1}
和|
ACC[AG]CCG
更新后的代码看起来可能是
r'ACC[AG]CCG'
您能为问题添加示例吗?所有相关组合的输入和输出有助于回答谢谢,是的,它起作用了。我也希望至少有一个,但不是两个都有。这就完成了r'ACC[A | G]{1}?CCG'