Как получить только числа из списка, используя регулярное выражение?

#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)
  

Демонстрация Python

Обратите внимание, чтобы повторить сопоставление цифр 1 раз [0-9] , используя квантификатор

Результат

 ['123', '456']