как получить часть строки с помощью регулярного выражения в python

#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 Сопоставление начнется только с начала строки, ^ в начале шаблона нет необходимости.