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

问题描述 投票:0回答:2

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

预期输出:-&^%

尝试过的内容

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

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

regex python-3.x special-characters
2个回答
1
投票

尝试使用findall代替搜索

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

0
投票

问题是由于搜索返回模式的第一出现而不是全部。试试这个:

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是文本。

© www.soinside.com 2019 - 2024. All rights reserved.