Python регулярное выражение, печатать все специальные символы из строки - PullRequest
0 голосов
/ 31 марта 2020

Ввод: - "ABCD & EFab ^ cdef12% 3450"

Ожидаемый вывод: - & ^%

Что было проверено

import re
pattern=re.compile(r'[^a-zA-Z0-9]+')
print(pattern.search("ABCD&EFab^cdef12%3450"))

Фактический вывод: - только для печати первое появление метасимвола.

Ответы [ 2 ]

1 голос
/ 31 марта 2020

Попробуйте поискать вместо поиска

import re
pattern=re.compile(r'[^a-zA-Z0-9]+')
print(pattern.findall("ABCD&EFab^cdef12%3450"))
0 голосов
/ 31 марта 2020

Проблема связана с поиском, который возвращает первое вхождение шаблона, а не целое. Синтаксис sub: re.sub (pattern, repl, string, max = 0). Пропустите max = 0, шаблон - это шаблон, который нужно заменить на repl, а строка - это текст.

print(re.sub(r'[a-zA-Z0-9]',"","ABCD&EFab^cdef12%3450"))
...