Python|字符串去除与保留(数字、中文、英文、标点符号、空格)
要在Python中去除或保留字符串中的数字、中文、英文、标点符号和空格,可以使用正则表达式模块re
。以下是一个函数,它接受一个字符串和一个布尔值keep
,当keep
为True
时保留匹配的字符,为False
时去除匹配的字符。
import re
def filter_string(s, keep):
if keep:
pattern = r'[0-9\u4e00-\u9fa5a-zA-Z\t\f\r\n`~!@#$%^&*()_+\-=
<div class="katex-block">\[\]{};\'":/?.>,<]'
else:
pattern = r'[^0-9\u4e00-\u9fa5a-zA-Z\t\f\r\n`~!@#$%^&*()_+\-=\[\]</div>
{};\'":/?.>,<]'
return re.sub(pattern, '', s)
# 示例使用
s = "Hello, 你好123! Python3."
print(filter_string(s, True)) # 保留数字、中文、英文和标点符号
print(filter_string(s, False)) # 去除数字、中文、英文和标点符号
这段代码中,filter_string
函数根据keep
参数使用不同的正则表达式模式。当keep
为True
时,保留数字、中文、英文字符及常见标点符号和空格;当keep
为False
时,则去除这些字符。使用re.sub
函数替换掉不匹配的字符为空字符串。
评论已关闭