python - 将 re 中的 € 符号与 python 匹配

标签 python regex python-2.7

我试图匹配字符串中的 € 符号,但在使用特殊字符“?”时出现奇怪的行为。对于普通字符,它可以按预期工作

import re

print re.match(r'a?1', 'a1')
<_sre.SRE_Match object at 0x3a2ba58>

print re.match(r'a?1', '1')
<_sre.SRE_Match object at 0x3a2ba58>

但是使用 € 符号我得到这个输出

print re.match(r'€?1', '€1')
<_sre.SRE_Match object at 0x3a2ba58>

print re.match(r'€?1', '1')
None

知道发生了什么吗?我怀疑这与unicode有关。 我正在使用 python 2.7。 谢谢。

最佳答案

€不是ascii字符,所以需要使用unicode匹配:

print re.match(ur'€?1', u'€1', flags=re.UNICODE)
<_sre.SRE_Match object at 0x7ffde0084bf8>

print re.match(ur'€?1', u'1', flags=re.UNICODE)
<_sre.SRE_Match object at 0x7ffde0084bf8>

关于python - 将 re 中的 € 符号与 python 匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25210429/

相关文章:

python - Boto3 创建一个新的 lambda 层

javascript - 正则表达式将匹配的最后一个单词捕获为一组

java - 查找 Arraylist 中包含子字符串的所有字符串的有效方法

python - 为什么使用 Python 的 os 模块方法而不是直接执行 shell 命令?

Python - Pandas - 根据现有级别填充缺失数据

Python,压缩在缩进级别和 PEP-8 宽度限制之间

python - 错误 : nothing to repeat at position 0 using regex in python

Python - 提取和保存视频帧

python - 生成所需长度的所有字符串

python - 类型错误 : translate() takes exactly one argument (2 given)