Расщепление строк в Python с использованием регулярного выражения
Я пытаюсь разбить строку в Python, чтобы получить все до определенного регулярного выражения.
пример строки: "Some.File.Num10.example.txt"
Мне нужно все до этой части: "Num10"
, regex: r'Num\d\d'
(число будет меняться и, возможно, что произойдет после).
Любые идеи о том, как это сделать?
Ответы
Ответ 1
>>> import re
>>> s = "Some.File.Num10.example.txt"
>>> p = re.compile("Num\d{2}")
>>> match = p.search(s)
>>> s[:match.start()]
'Some.File.'
Это будет более эффективно, если вы выполните разделение, потому что поиск не должен сканировать всю строку. Он ломается в первом матче. В вашем примере это не изменится, поскольку строки коротки, но если ваша строка очень длинная, и вы знаете, что совпадение будет в начале, тогда этот подход будет быстрее.
Я написал небольшую программу для поиска профилей() и split() и подтвердил это утверждение.
Ответ 2
>>> import re
>>> text = "Some.File.Num10.example.txt"
>>> re.split(r'Num\d{2}',text)[0]
'Some.File.'
Ответ 3
Вы можете использовать Python re.split()
import re
my_str = "This is a string."
re.split("\W+", my_str)
['This', 'is', 'a', 'string', '']