Quiero encontrar los comentarios hash que no contienen el texto entre llaves. Pero si comienza con #, son todos comentarios.
Aporte:
# This is comment 1
TEST # This is comment 2
{ # Not comment}; { # Not comment } # This is example 3
# This is comment 4
TEST Not comment
{ # Not comment}; { # Not comment } # This is comment 5
{# Not comment}; { # Not comment }={# Not comment} {# Not comment}={# Not comment} {# Not comment}={# Not comment} # This is comment 6
# This is comment 7 {# This is comment 8}
# This is comment 9
Not comment {Not comment}={# Not comment}
Producción:
# This is comment 1
# This is comment 2
# This is comment 3
# This is comment 4
# This is comment 5
# This is comment 6
# This is comment 7 {# This is comment 8}
# This is comment 9
Quiero poder lograr lo que quiero con una línea de expresión regular. Actualmente solo puedo encontrar todas las cadenas que comienzan con # por \{.*?}(*SKIP)(*F)|#[^#{}\n].* Sin embargo, no funciona en python (espero que no sea PCRE).
Si es posible, espero que se pueda hacer sin instalar el módulo 'regex' para analizar PCRE (Expresiones regulares compatibles con Perl).
Solución del problema
Puede corregir los separadores de inicio y final de línea en los límites de su expresión regular y luego buscar:
- todas las cadenas que comienzan con a
#y que no incluyen líneas nuevas:"(#[^\n]+)"
Precedido opcionalmente por:
- cualquier carácter (que no sea una nueva línea) seguido de un espacio
"(.+ )?"
Aquí está la expresión regular final:
"(^|\n)(.+ )?(#[^\n]+)"
Probado en https://regex101.com. Use la referencia inversa para recuperar su comentario dentro del Grupo 3.
¿Funciona para ti?
No hay comentarios:
Publicar un comentario