首页新闻找找看学习计划

正则匹配规则问题

0
悬赏园豆:10 [待解决问题]

本地环境为python3.7,今天偶然发现一个正则匹配问题,不清楚是什么原因造成,具体如下:
首先在python环境中运行

import re
string=‘token:124312abc1b2a3c3d3f1b中文汉字'
a = re.findall('token\W([\d|\w]*)',string)
print(a)
匹配结果为:
['124312abc1b2a3c3d3f1b中文汉字']

下图为网上在线匹配的结果

还有在精易编程助手上测试,匹配结果也是没有中文字符的,所以我想问下是python环境问题还是其他什么问题呢

易yl龙的主页 易yl龙 | 初学一级 | 园豆:198
提问于:2019-11-29 18:51
< >
分享
所有回答(3)
1

python的'\w' 匹配中文,别的不支持。使用re.A不要中文。
https://blog.csdn.net/u013069552/article/details/92846390

Masako | 园豆:1751 (小虾三级) | 2019-12-03 11:45
0

可以试试这个模块
更强大的python正则表达式模块 -- regex
https://www.cnblogs.com/gayhub/p/6354097.html

codegay | 园豆:1777 (小虾三级) | 2019-12-05 14:20
0

python3 中re默认支持的是unicode字符集,也支持汉字
如果要让\w仅支持英文,加个re.A标志
re.findall('token\W([\d|\w]*)', 'token:124312abc1b2a3c3d3f1b中文汉', re.A)

ABeen | 园豆:229 (菜鸟二级) | 2020-01-07 10:03
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册