Extraer hasta el final de la línea después de un carácter especial: Python
Necesito la cadena después de '#' en cada línea y todas las líneas tienen el #. Ya tengo una expresión regular que coincide con la línea y cuando agrego la parte del comentario a esto no funciona. Recibo todas las líneas después del primer comentario como un grupo.
Formato de línea:
Line1 blah blah... }}#Comment1 or it could be
Line1 blah blah...}}# Comment1
O bien hay un espacio entre el '#' y el comentario o no hay espacio. En este momento coincide hasta las primeras llaves.
Mi código:
Linepattern = re.compile(r'\{(\s*(\w+)\s*|(\w+)|(\w+)\s*)\{(.*?)\}', re.DOTALL)
for match in Linepattern.finditer(infile):
line = matches.group(5)
#print line
comment = matches.group(6)
print comment # Returns the first comment and then the entire set of lines until end of file
Modifiqué mi expresión regular a esto:
Linepattern = re.compile(r'\{(\s*(\w+)\s*|(\w+)|(\w+)\s*)\{(.*?)\}\}(#.*)?', re.DOTALL)
Miré esto que está muy cerca de lo que estoy buscando:Expresión hasta comentario o final de línea
Mi salida es:
Comment1
Line2 # Comment2
Line3 # Comment3 and so on...
Mi formato de líneas:
Foo { bar { foo=0; } }# blah1 =1, blah2=1 , blah3 =1, blah#=1
FOO { bar { bar=1;bar=2; } }#comment 2