Как получить часть строки с помощью регулярного выражения в Python - PullRequest
0 голосов
/ 31 марта 2019

Я хочу получить часть строки с помощью регулярного выражения, я пытаюсь это сделать, но он возвращает больше, чем мне нужно. Это мой код:

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 Ответ

4 голосов
/ 31 марта 2019

Вы можете использовать

w = re.match(r"(.*?)\s+S\d+E\d+", t)

, и поскольку нужное вам значение находится в группе 1:

return w.group(1)

См. Демонстрационную версию Python , вывод составляет >>>> Regular Part: My Kitchen Rules.

Детали шаблона

  • (.*?) - любые 0+ символов, кроме символов разрыва строки, как можно меньше
  • \s+ - 1+ пробелов
  • S\d+E\d+ - S char, 1+ цифр, E и 1+ цифр

re.match будет начинать сопоставление только сначало строки, ^ в начале шаблона не обязательно.

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