Я пытаюсь отфильтровать список строк с регулярными выражениями, как показано в this answer. Однако код дает неожиданный результат:Регулярные выражения Python для фильтрации списка строк
In [123]: r = re.compile('[0-9]*')
In [124]: string_list = ['123', 'a', '467','a2_2','322','21']
In [125]: filter(r.match, string_list)
Out[125]: ['123', 'a', '467', 'a2_2', '322_2', '21']
Я ожидал, что выход будет ['123', '467', '21']
.
В этом конкретном примере, нет нет, но я хотел бы знать, почему он не работает так, как я ожидал. –
Что произойдет, скажем, '1e6'? :) –
@Allendar '>>> '23e1'.isdigit()' is 'False' –