Я знаю, что могу разбить строку в Python, используя:

s = re.split("[0-9]|  ", string)[0].strip()

Тем не менее, я хотел бы разбить строку, только если у меня есть 5 или более последовательных цифр.

Ex .

Hello1234 => Hello1234
Hello12345 => Hello

Как мне этого добиться?

3
user 11 Янв 2017 в 18:10

3 ответа

Лучший ответ

Что-то вроде

s = re.split("[0-9]{5,}", string)[0].strip()
8
e4c5 11 Янв 2017 в 15:13

( \ D) * ( ? = \ Д {5 , } )

Соответствует любой строке с 5 цифрами +

Первая группа захвата будет соответствовать вашей строке без цифр

http://regexr.com/ позволит вам проверять регулярные выражения, а также имеет справочное руководство

0
tbone 11 Янв 2017 в 15:29

В качестве альтернативы вы также можете использовать re.sub, чтобы удалить все после 5 цифр:

>>> re.sub('[0-9]{5,}.*', '', 'Hello12345World')
'Hello'

>>> re.sub('[0-9]{5,}.*', '', 'Hello12345')
'Hello'

>>> re.sub('[0-9]{5,}.*', '', 'Hello1234')
'Hello1234'
2
anubhava 11 Янв 2017 в 15:21