^[一二三四五六七]、
与一、
但^一、
匹配一、
。
我指定汉字字符类的方式是错误的吗?
我从文件中读取正则表达式。
答案 0 :(得分:3)
适合我,
>>> import re
>>> re.match(u'^[一二三四五六七]、', u'一、')
<_sre.SRE_Match object; span=(0, 2), match='一、'>
>>> re.match(u'^[一二三四五六七]、', u'一、').group(0)
'一、'
我认为您未能将正则表达式定义为unicode字符串。
在python3中,它将是
# -*- coding: utf-8 -*-
import re
with open('file') as f:
reg = f.read().strip()
print(re.match(reg, u'一、').group(0))
答案 1 :(得分:1)
您需要确保使用正确的编码读取文件:
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!")