Разделить строку и просто получить номер в python?
У меня есть строка типа "GoTo: 7018 6453 12654\n"
Мне просто нужно получить номер, похожий на этот ['7018', '6453', '12654']
, я пытаюсь выполнить регулярное выражение, но я не могу разделить строку, чтобы получить только номер здесь, это мой код:
Пример 1:
splitter = re.compile(r'\D');
match1 = splitter.split("GoTo: 7018 6453 12654\n")
my output is: ['', '', '', '', '', '', '', '', '7018', '6453', '12654', '']
Пример 2:
splitter = re.compile(r'\W');
match1 = splitter.split("GoTo: 7018 6453 12654\n")
my output is: ['GoTo', '', '7018', '6453', '12654', '']
Ответы
Ответ 1
Если все ваши числа являются положительными целыми числами, вы можете сделать это без регулярных выражений с помощью метода isdigit():
>>> text = "GoTo: 7018 6453 12654\n"
>>> [token for token in text.split() if token.isdigit()]
['7018', '6453', '12654']
Ответ 2
>>> re.findall(r'\d+', 'GoTo: 7018 6453 12654\n')
['7018', '6453', '12654']
Ответ 3
>>> import re
>>> re.findall("[0-9]+", "GoTo: 7018 6453 12654\n")
['7018', '6453', '12654']
>>>
Ответ 4
Вы можете следовать вашему текущему методу в примере 1 вместе с этим кодом:
filter (lambda a: a != '', match1)
Ответ 5
Попробуйте следующее:
import re
splitter = re.compile(r'\d+')
match1 = splitter.findall("GoTo: 7018 6453 12654\n")
print match1