0

输入:-“ABCD&EFab^cdef12%3450”

预期输出:- &^%

尝试了什么

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

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

4

2 回答 2

1

尝试 findall 而不是搜索

import re
pattern=re.compile(r'[^a-zA-Z0-9]+')
print(pattern.findall("ABCD&EFab^cdef12%3450"))
于 2020-03-31T02:11:40.367 回答
0

问题是由于搜索返回模式的第一次出现而不是全部。sub 的语法是:re.sub(pattern, repl, string, max=0)。省略 max=0,模式是要替换为 repl 的模式,字符串是文本。

print(re.sub(r'[a-zA-Z0-9]',"","ABCD&EFab^cdef12%3450"))
于 2020-03-31T02:35:01.663 回答