美文网首页思科DevNet
python2 re正则匹配关于中文的坑

python2 re正则匹配关于中文的坑

作者: doverxu | 来源:发表于2017-09-30 15:57 被阅读971次

import re

1.如果pattern是'匹配':

m = re.match('匹配', '匹配')
print(m.group())  # 匹配
print(repr(m.group()))  # 打印\xe5\x8c\xb9\xe9\x85\x8d

这样看上去没有什么问题。

2.但是如果pattern是'[匹配]':

m = re.match('[匹配]', '匹配')
print(m.group())  # 打印乱码,这是为什么呢?不是应该匹配‘匹’字吗?
print(repr(m.group()))  # 打印\xe5

解释:'[匹配]'被解释为'[\xe5\x8c\xb9\xe9\x85\x8d]', '匹配'被解释为'\xe5\x8c\xb9\xe9\x85\x8d',
这是字符串,本质上可以叫做‘字节串’,每个汉字被分成了3个字节,熟悉正则规则的话可以就很容易看出来了,匹配‘\xe5’
是正确的。
解决办法:是在字符串前添加u,这样就把字节串转化成了汉字的unicode码:"u'\u5339\u914d'",
这样每个汉字就不会被拆分了(^-^)。

相关文章

  • python2 re正则匹配关于中文的坑

    import re 1.如果pattern是'匹配': 这样看上去没有什么问题。 2.但是如果pattern是'[...

  • Python之路13:

    re 模块,正则匹配表达式 正则匹配表达式就是字符串的匹配规则 re 模块的匹配语法: re.match 从头开始...

  • 正则判断中文汉字

    正则匹配(全是中文汉字) 正则匹配(含有中文汉字)

  • 0008-HTML提出出正文

    代码 新知识 requests.get中文乱码,指定编码格式 正则跨行匹配,要加re.S

  • RegExp Cheatsheet

    正则匹配技巧 使用python包re 基本函数 re.match(正则表达式, 原字符串) 从最开始匹配,但只匹配...

  • 正则表达式五---re的所有函数方法

    re.match re.match是用来进行正则匹配检查的方法,若字符串匹配正则表达式,则match方法返回匹配对...

  • 正则表达式

    re模块的快速使用 re.match是用来进行正则匹配检查的方法,若字符串匹配正则表达式,则match方法返回匹配...

  • 2018-03-30

    python 正则 re 模块常用方法re.match #从头匹配re.search #...

  • 正则匹配库

    正则匹配用户名: 正则匹配用户名: 正则匹配手机号或者固定电话: 匹配中文: 正则匹配用户密码: 正则匹配电子邮箱...

  • 正则

    导入re模块import re使用match方法进行匹配操作result = re.match(正则表达式,要匹配...

网友评论

    本文标题:python2 re正则匹配关于中文的坑

    本文链接:https://www.haomeiwen.com/subject/ttcgsxtx.html