Расщепление строк в 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', '']