/ / ¿Cuál sería la expresión de expresiones regulares si quisiera tokenizar una cadena por espacios, -, 'y "en Python? [Cerrado] - python, regex, python-2.7

¿Cuál sería la expresión de expresiones regulares si quisiera poner tokenizar una cadena por espacios, -, ', y "en Python? [Cerrado] - python, regex, python-2.7

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.