使用正则表达筛选出中文汉字

a = '屠杀 massacre 4.167 6'
jie= a.split(' ')
res = re.findall('\d+\.?\d*|[a-zA-Z]+', a)
for item in res:
    if item in jie:
        jie.remove(item)
print(' '.join(jie))

上述方法太复杂,且限制条件太多,只允许出现数字,中文,英文,且以空格的方式分开。

现在直接用汉字的匹配规则进行匹配

content = """yingjie1111\n
222   .  xyx  ying  杰哥 ?
"""
pattern = re.compile(r'[\u4e00-\u9fa5]+')
result = pattern.findall(content)
print(result)

或者使用排除法,[^]去反的方式,去处数字\d, 字母a-zA-Z, 去除\.,去除?去除空格\s换行\n

content = """yingjie1111\n
222   .  xyx  ying  杰哥 ?
"""
# pattern = re.compile(r'[\u4e00-\u9fa5]+')
# result = pattern.findall(content)
# print(result)
result = re.findall('[^?A-Za-z\.\n0-9\s]+',content)
print(result)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值