Python|字符串去除与保留(数字、中文、英文、标点符号、空格)
warning:
这篇文章距离上次修改已过443天,其中的内容可能已经有所变动。
要在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函数替换掉不匹配的字符为空字符串。
评论已关闭