zl程序教程

您现在的位置是:首页 >  后端

当前栏目

python 正则过滤中文、英文、数字、特殊字符demo

Python中文 数字 Demo 过滤 正则 英文 特殊字符
2023-09-11 14:17:14 时间

一般情况下,模型不能百分百实现完成功能情况下,需要采用特定trick二次升级,正则是一个重要的手段,之前也有总结,现将最近完成测试代码总结如下,希望能够帮到你解决问题。

import re
# 匹配中文
CN_PATTERN = re.compile(u'[\u4e00-\u9fa5]')
# 匹配英文和数字
NUM_PATTERN = re.compile(r'[A-Za-z0-9]+')
# 匹配关键词
KEYWORDS_PATTERN = re.compile(r'新疆大学|世界|外汇|中国')
# 特殊自负
SPECIAL_CHAR_PATTERN = re.compile(r'[’!"#$%&\'()*+,-./:;<=>?@,。?★、…【】《》?“”‘’!\[\\\]^_`{|}~]+')
def regular_fun(s):
    cn = CN_PATTERN.findall(s)
    num = NUM_PATTERN.findall(s)
    words = KEYWORDS_PATTERN.findall(s)
    print(cn, num, words)

if __name__ == '__main__':
    t1 = r'this boy chincese name, NLPer, 18 years old'
    t2 = r'当前测试数据全是中文'
    t3 = r'current data is all english!'
    t4 = r'ddddddddddddddddddddddddddddddddddddddddddddddddddddddddd这是一个对用户预填垃圾信息过滤方案'
    t5 = r'新疆大学(Xinjiang University),简称“新大”,位于新疆维吾尔自治区首府乌鲁木齐,是世界一流大学建设高校(B类)'
    t6 = r'%^&&*^*(^&*(%&%$#$@#%^#'
    regular_fun(t1)
    regular_fun(t2)
    regular_fun(t3)
    regular_fun(t4)
    regular_fun(t5)
    regular_fun(t6)
    print(SPECIAL_CHAR_PATTERN.findall(t3))

 这里强调一点,对于关键词的应用大家不要小看了,合理的应用会给精度、用户体验等都带来提升。不要怕关键词多,同时对于关键词归类、排序等(对于有序的数值,查找起来是不是会效率更高?同理),借鉴阿里文娱一张图说明下: