#python #regex
#python #регулярное выражение
Вопрос:
Я хочу получить часть строки с помощью регулярного выражения, я пробую это, но оно возвращает больше, чем мне нужно. Это мой код :
Release_name = 'My Kitchen Rules S10E35 720p HDTV x264-ORENJI'
def get_rls(t):
w = re.match(".*d ", t)
if not w: raise Exception("Error For Regular Expression")
return w.group(0)
regular_case = [Release_name]
for w in regular_case:
Regular_part = get_rls(w)
print(">>>> Regular Part: ", Regular_part)
Этот код для этого примера » My Kitchen Rules S10E35 720p HDTV x264-ORENJI
»
верните это « My Kitchen Rules S10E35
«, но мне не нужно « S10E35
«, просто верните это My Kitchen Rules
Ответ №1:
Вы можете использовать
w = re.match(r"(.*?)s Sd Ed ", t)
и поскольку нужное вам значение находится в группе 1:
return w.group(1)
Смотрите демонстрацию Python, вывод такой >>>> Regular Part: My Kitchen Rules
.
Детали шаблона
(.*?)
— любые символы 0 , отличные от символов разрыва строки, как можно меньшеs
— 1 пробелыSd Ed
—S
символ, 1 цифры,E
и 1 цифры
re.match
Сопоставление начнется только с начала строки, ^
в начале шаблона нет необходимости.