正则排除筛选unicode字符

对于已经定义的字符串变量来说,是无法使用正则表达式匹配unicode字符的。

原因详情见:Python正则匹配unicode字符_F.Y.Y的博客-CSDN博客

因此我们换一种思路,使用排除法排除掉所有合法字符,那么剩余的就是我们要找到的unicode字符。

给出unicode字符范围表:unicode语言字符范围表_F.Y.Y的博客-CSDN博客

在正则表达式中添加合法的数据,进行正则排除法:

import re


unicode_re_compiler = re.compile(
u"[^"
u"\u4e00-\u9fa5" # 中文
u"\uac00-\ud7af" # 韩文
u"\u0400-\u052f" # 俄文
u"\u3040-\u309f" # 日文平假名
u"\u30a0-\u30ff" # 日文片假名
u"\u0041-\u005A" # 英文字母
u"\u0061-\u007A" # 英文字母
u"\u0030-\u0039" # 数字
u"\u0600-\u06FF" # 阿拉伯文
u"\u0E00-\u0E7F" # 泰文
u"\u0900-\u097F" # 天城文书
u"\u2C80-\u2CFF" # 古埃及语
u"\u3002\uFF1F\uFF01\uFF0C\u3001\uFF1B\uFF1A\u300C\u300D\u300E\u300F\u2018\u2019\u201C\u201D\uFF08\uFF09\u3014\u3015\u3010\u3011\u2014\u2026\u2013\uFF0E\u300A\u300B\u3008\u3009"
u"\!\@\#\$\%\^\&\*\(\)\-\=\[\]\{\}\\\|\;\'\:\"\,\.\/\<\>\?\/\*\+"
u"]+")

正则匹配:

original_text = "\uf0b7\uf0b7onetwothree"
unicode_text_res = unicode_re_compiler.match(original_text.strip())

if unicode_text_res:
    print(unicode_text_res)

输出:

<re.Match object; span=(0, 2), match='\uf0b7\uf0b7'>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值