本文主要是介绍python的正则表达式'\w'居然可以匹配中文,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、正则表达式总结较好的网址
https://www.jb51.net/tools/regexsc.htm
二、正则表达式先行断言和后行断言问题详解
https://www.cnblogs.com/sdgjytu/p/3669364.html
(?=pattern) 正向先行断言
代表字符串中的一个位置,紧接该位置之后的字符序列能够匹配pattern。
(?!pattern) 负向先行断言
代表字符串中的一个位置,紧接该位置之后的字符序列不能匹配pattern。
(?<=pattern) 正向后行断言
代表字符串中的一个位置,紧接该位置之前的字符序列能够匹配pattern。
(?<!pattern) 负向后行断言
代表字符串中的一个位置,紧接该位置之前的字符序列不能匹配pattern。
三、\w居然能匹配汉字(我的版本python3)
patt=re.compile(r'\w')
patt.findall('中国人asdfg123&&&&中国万岁\n')
结果:
['中', '国', '人', 'a', 's', 'd', 'f', 'g', '1', '2', '3', '中', '国', '万', '岁']
网上有解释说:\w匹配的是能组成单词的字符,在python3 中re默认支持的是unicode字符集,当然也支持汉字
如果要让\w仅支持英文,加个re.A标志
print(re.findall(r"\w",s,re.A))
这样就不会匹配汉字了
这篇关于python的正则表达式'\w'居然可以匹配中文的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!