Разделение имени файла на слова и числа в Python - PullRequest
1 голос
/ 04 мая 2010

Следующий код разбивает строку на список слов, но не включает цифры:

    txt="there_once was,a-monkey.called phillip?09.txt"
    sep=re.compile(r"[\s\.,-_\?]+")
    sep.split(txt)

['there', 'once', 'was', 'a', 'monkey', 'called', 'phillip', 'txt']

Этот код дает мне слова и цифры, но по-прежнему содержит "_" в качестве допустимого символа:

re.findall(r"\w+|\d+",txt)
['there_once', 'was', 'a', 'monkey', 'called', 'phillip', '09', 'txt']

Что мне нужно изменить в любом фрагменте кода, чтобы получить желаемый результат:

['there', 'once', 'was', 'a', 'monkey', 'called', 'phillip', '09', 'txt']

Ответы [ 2 ]

2 голосов
/ 04 мая 2010

Для примера,

sep = re.compile(r"[^a-zA-Z0-9]+")
sea.split(txt)

должно работать. Чтобы отделить числа от слов, попробуйте

re.findall(r"[a-zA-Z]+|\d+", txt)
2 голосов
/ 04 мая 2010

Вот быстрый способ сделать это:

re.findall(r"[a-zA-Z0-9]+",txt)

Вот еще один:

re.split(r"[\s\.,\-_\?]+",txt)

(вам просто нужно было избежать дефиса, поскольку он имеет особое значение в классе символов)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...