regulares regular para online impacientes expressions expresiones expresion espacio ejemplos blanco alfanumerico python regex

online - python para impacientes expresiones regulares



¿Cómo puedo hacer coincidir el inicio y el final en la expresión regular de Python? (6)

¿Qué hay de no usar una expresión regular en absoluto?

if string.startswith("ftp://") and string.endswith(".jpg"):

¿No crees que esto se lee mejor?

También puede admitir múltiples opciones para el inicio y el final:

if (string.startswith(("ftp://", "http://")) and string.endswith((".jpg", ".png"))):

Tengo una cadena y quiero hacer coincidir algo al principio y al final con un solo patrón de búsqueda. ¿Cómo se puede hacer esto?

Digamos que tenemos una cadena como:

string = "ftp://www.somewhere.com/over/the/rainbow/image.jpg"

Quiero hacer algo como esto:

re.search("^ftp:// & .jpg$" ,string)

Obviamente, es incorrecto, pero espero que llegue mi punto de vista. es posible?


No seas greedy , usa ^ftp://(.*?)/.jpg$



Tratar

re.search(r''^ftp://.*/.jpg$'' ,string)

Si quieres una búsqueda de expresiones regulares. Tenga en cuenta que tiene que escapar del período porque tiene un significado especial en las expresiones regulares.


re.match coincidirá con la cadena al principio , en contraste con re.search :

re.match(r''(ftp|http)://.*/.(jpg|png)$'', s)

Dos cosas a tener en cuenta aquí:

  • r'''' se utiliza para el literal de cadena para que sea trivial tener barras invertidas dentro de la expresión regular
  • string es un módulo estándar, así que elegí s como variable
  • Si usa una expresión regular más de una vez, puede usar r = re.compile(...) para construir la máquina de estados una vez y luego usar r.match(s) para coincidir con las cadenas

Si lo desea, también puede usar el módulo urlparse para analizar la URL por usted (aunque todavía necesita extraer la extensión):

>>> allowed_schemes = (''http'', ''ftp'') >>> allowed_exts = (''png'', ''jpg'') >>> from urlparse import urlparse >>> url = urlparse("ftp://www.somewhere.com/over/the/rainbow/image.jpg") >>> url.scheme in allowed_schemes True >>> url.path.rsplit(''.'', 1)[1] in allowed_exts True


import re s = "ftp://www.somewhere.com/over/the/rainbow/image.jpg" print(re.search("^ftp://.*/.jpg$", s).group(0))