2011-12-22 24 views
23

Supongamos que quiero una expresión regular que coincida con "Enviado desde mi iPhone" y "Enviado desde mi iPod". ¿Cómo escribo tal expresión?Expresiones regulares de Python O

he intentado cosas como:

re.compile("Sent from my [iPhone]|[iPod]") 

pero no parece funcionar.

+1

miradas como si fuera un gran beneficio al repasar los aspectos básicos. Ver: [Python Regular Expression HOWTO] (http://docs.python.org/dev/howto/regex.html) y/o [regular -expressions.info] (http://www.regular-expressions.info/) – ridgerunner

Respuesta

43
re.compile("Sent from my (iPhone|iPod)") 
+21

O incluso "Enviado desde mi iP (:? Hone | [ao] d)", que también incluye el iPad. –

+0

¿Cómo está funcionando? La salida es: Salida [25]: ['iPhone'] – lapinkoira

+6

@lapinkoira ¿La salida de qué? ¿De verdad crees que esto garantiza un voto negativo cuando funciona para la persona que hizo la pregunta y para todos los demás que la encontraron, pero no funciona de una manera específica que la estás usando y que no tiene nada que ver con la pregunta original? ? – Paulpro

15
re.compile("Sent from my (?:iPhone|iPod)") 

Si necesita capturar partidos, retire la ?:.

FYI, su expresión regular no funcionó porque está tratando de detectar un carácter de i, P, H, O, N, E o un carácter de I, P, O, d ..

+2

No, están probando "Enviado desde mi" y luego uno de los caracteres i, P, h, o, n o e; O uno de los caracteres i, P, o o d. La barra vertical para O es el alcance más alto, y el lado izquierdo tiene "Enviado desde mi" en él, pero el lado derecho no. – PaulMcG

+0

Esta debería ser la respuesta aceptada – lapinkoira

Cuestiones relacionadas