#regex #python-3.x #pandas
#регулярное выражение #python-3.x #панды
Вопрос:
Как получить только числа из списка, используя регулярное выражение?
import re
l=[["123abc","456"],["lmnop0987"]]
list_1=[]
for i,string in enumerate(l):
if i == 0 :
for j in string:
if re.findall(r"[0-9]", j):
list_1.append(j)
print(list_1)
Ожидаемый результат:
['123','456']
Ответ №1:
Вы добавляете j
list_1
, но я думаю, вы хотите добавить результат findall в list_1:
l=[["123abc","456"],["lmnop0987"]]
list_1=[]
for i,string in enumerate(l):
if i == 0 :
for j in string:
list_1.append(re.findall(r'[0-9] ', j)[0])
print(list_1)
Обратите внимание, чтобы повторить сопоставление цифр 1 раз [0-9]
, используя квантификатор
Результат
['123', '456']