首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Unicode正则表达式以匹配中文字符的字符类别

问Unicode正则表达式以匹配中文字符的字符类别
EN

Stack Overflow用户
提问于 2015-06-16 10:09:14
回答 2查看 1.6K关注 0票数 0

^[一二三四五六七]、与一、不匹配

但是^一、和一、匹配。

我指定汉字的字符类的方式是不是错了?

我从一个文件中读取了正则表达式。

EN

回答 2

Stack Overflow用户

发布于 2015-06-16 10:11:09

对我来说很有效,

代码语言:javascript
复制
>>> import re
>>> re.match(u'^[一二三四五六七]、', u'一、')
<_sre.SRE_Match object; span=(0, 2), match='一、'>
>>> re.match(u'^[一二三四五六七]、', u'一、').group(0)
'一、'

我认为您未能将您的正则表达式定义为unicode字符串。

在python3中,它将是

代码语言:javascript
复制
# -*- coding: utf-8 -*-

import re

with open('file') as f:
    reg = f.read().strip()
    print(re.match(reg, u'一、').group(0))
票数 3
EN

Stack Overflow用户

发布于 2015-06-16 11:47:53

您需要确保使用正确的编码读取文件:

代码语言:javascript
复制
with open('my-regex-file', encoding='utf-8') as f:
    regex = re.compile(f.read())
with open('my-text-file', encoding='utf-8') as f:
    text = f.read()
if regex.match(text):
    print("It's a match!")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30857742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档