Как найти нужную последовательность символов в Python и отделить лишнее?
У меня есть 2 варианта вхождения символов:
'09-1103-2' и '09-1103-1-3'
Мне нужно написать регулярное выражение, после которого будет такой вывод:
['09-1103', '2'] и ['09-1103-1', '3'] соответственно
Первая строка в списке - нужная последовательность, вторая - лишний символ
Ответы (2 шт):
Автор решения: Lecron
→ Ссылка
str.rsplit('-', 1)[0]
UPD: Выражение разделяет строку на фрагменты по символу '-', начиная справа. Параметр "1" ограничивает количество разбиений, возвращая результат ['09-1103-1', '3']. Индекс в скобках указывает взять только нужную часть, первый элемент массива — '09-1103-1'.
Автор решения: strawdog
→ Ссылка
Если у вас задача именно использовать регулярные выражения, то можно сделать так:
import re
def extr(a: str) -> list:
return re.findall(r"(.+)-(\d+)$", a)
print(extr('09-1103-2'))
print(extr('09-1103-1-3'))
[('09-1103', '2')]
[('09-1103-1', '3')]
Обратите внимание, что метод findall вернет вам список кортежей.