输入:-“ ABCD&EFab ^ cdef12%3450”
预期输出:-&^%
尝试过的内容
import re
pattern=re.compile(r'[^a-zA-Z0-9]+')
print(pattern.search("ABCD&EFab^cdef12%3450"))
实际输出:-仅打印第一个出现的元字符。
尝试使用findall代替搜索
import re
pattern=re.compile(r'[^a-zA-Z0-9]+')
print(pattern.findall("ABCD&EFab^cdef12%3450"))
问题是由于搜索返回模式的第一出现而不是全部。试试这个:
print(re.sub(r'[a-zA-Z0-9]',“”,“ ABCD&EFab ^ cdef12%3450”))sub的语法是:re.sub(pattern,repl,string,max = 0)。省略max = 0,pattern是要替换为repl的模式,string是文本。