example - Usando.format para usar la variable en el objeto regex findall. Pitón
re compile string (1)
Python se queja de que hay otros {
y }
en su cadena que no se usan para el formato, y no sabe cómo diferenciarlos. En una cadena de formato, las llaves se escapan doblándolas.
También necesita escapar de los caracteres regex en su value
.
Así que tal vez:
ORF = re.findall(
r''ATG(?:(?!TAA|TAG|TGA)…){{{},}}?(?:TAA|TAG|TGA)''
.format(re.escape(value)),
seq)
Sin embargo, en un caso como este, dudo que alguien le fallará por usar %
-formatting o una buena concatenación de cadenas antiguas en su lugar :)
Vi algunos ejemplos de esto aquí, pero no respondió mi pregunta: Findall de expresión regular de Python con variable
Estoy tratando de usar una variable en lugar de la 9, pero parece que no puedo entenderlo
value = 9
ORF = re.findall(r''ATG(?:(?!TAA|TAG|TGA)…){ value ,}?(?:TAA|TAG|TGA)'',seq)
#obviously doesn''t work or i wouldn''t have made this post
Lo intenté:
value = 9
ORF = re.findall(r''ATG(?:(?!TAA|TAG|TGA)…){ {} ,}?(?:TAA|TAG|TGA)''.format(value),seq)
pero obtuve el error:
ValueError: Single ''}'' encountered in format string
entonces lo intenté:
value = r''{}''.format(9)
ORF = re.findall(r''ATG(?:(?!TAA|TAG|TGA)...){value,}?(?:TAA|TAG|TGA)'',seq)
y no obtuve ningún error, pero no funcionó cuando miré aguas abajo
¿Cómo puedo hacer que esta variable funcione en mi expresión regular?