Python 正则表达式,打印字符串中的所有特殊字符

Python regular expression, print all special character from a string

输入:- "ABCD&EFab^cdef12%3450"

预期输出:- &^%

尝试了什么

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

实际输出:- 仅打印第一次出现的元字符。

尝试使用 findall 而不是 search

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

问题是因为搜索 returns 第一次出现的模式而不是整个模式。 sub 的语法是: re.sub(模式、repl、字符串、最大值=0)。省略max=0,a pattern为repl替换的pattern,string为文本

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