El siguiente código:
string = "Hello, I am 5"8" tall - wow"
regex = re.compile(r"<<regex expression goes here>>")
tokenized_string = regex.split(string)
print tokenized_string
Debería imprimir:
["Hello", "I", "am", "5", """, "8", """, "tall", "-", "wow"]
Así que debe ignorar espacios, comas, etc., pero tokenize "-"
, """
y """
.
¿Cuál sería la expresión regular correcta para hacer esto?
Respuestas
2 para la respuesta № 1¿Qué hay de usar re.findall
en lugar de re.split
?
>>> import re
>>> s = "Hello, I am 5"8" tall - wow"
>>> re.findall(r"""w+|[-""]""", s)
["Hello", "I", "am", "5", """, "8", """, "tall", "-", "wow"]
El patrón anterior coincide con los caracteres de las palabras (w+
) o -
, "
, "
.
NOTA: carácter de la palabra (w
) coincide con alfabetos, dígitos, y _
. Si quieres excluir _
, utilizar [A-Za-z0-9]
en lugar de w
.