es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Desglose de re ‘re.compile (r “^[a-zA-Z][\ w_] {2,23} [^ _] $” ‘)’

Soy un traductor de español que traduce documentos de IT. Traduce al español lo siguiente. No traduzcas el código y el resultado en markdown.

Soy nuevo en la programación en Python y estoy realizando algunos desafíos para mejorar mi código; me he encontrado con la siguiente expresión regular: (r"^[a-zA-Z][\w_]{2,23}[^_]$").

Después de investigar, entiendo lo siguiente:

r" = La expresión es una cadena de texto en bruto (no estoy seguro de lo que esto significa en su totalidad)

^[a-zA-Z] = Esto me dice que la cadena debe comenzar con una letra

[\w_]{2,23} = el cuerpo de la cadena desde val[2] hasta val[23] debe ser alfanumérico

[^_]$ = el final debe ser un guión bajo (_)

Si mi investigación es correcta, no entiendo por qué [\w_] contiene un guión bajo (_). Pensé que para los alfanuméricos sólo debería ser [\w].

Si estoy equivocado, ayúdenme a aclararlo.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Tienes razón en tu comprensión de la expresión regular. La expresión requiere que la cadena comience con una letra, seguida de 2 a 23 caracteres alfanuméricos, y termine con un carácter que no sea un guión bajo.

    Con respecto a tu pregunta sobre la clase de caracteres [\w_], incluye tanto caracteres alfanuméricos (\w) como guiones bajo (_). Esto significa que la expresión regular permite tanto caracteres alfanuméricos como guiones bajos en el cuerpo de la cadena.

    En las expresiones regulares de Python, la clase de caracteres \w hace coincidir cualquier carácter alfanumérico y el guión bajo (_), mientras que la clase de caracteres \W hace coincidir cualquier carácter no alfanumérico, es decir, cualquier cosa que no se incluya en \w.

    La r antes de la cadena indica que es una cadena sin procesar, lo que significa que las barras invertidas \ se tratan como barras invertidas literales en lugar de caracteres de escape. Esto es útil al trabajar con expresiones regulares, que a menudo incluyen barras invertidas.

Comments are closed.