Skip to main content
 首页 » 编程设计

python之python 正则表达式中的字素支持

2025年05月04日27bhlsheji

我正在使用很棒的 regex模块,尝试其 \X 字素支持。

首先,我尝试使用普通的旧 。

>>> print regex.match('.', 'Ä').group(0) 
 
>>> print regex.match('..', 'Ä').group(0) 
Ä 

一切如期而至。移至 \X

>>> print regex.match('\X', 'Ä').group(0) 
 
>>> print regex.match('\X\X', 'Ä').group(0) 
Ä 

为什么和.一样呢?一个 \X 不应该足以捕获 A-umlaut 吗?是吗:

  • 我对字素或\X含义的理解有误吗?
  • 我需要先打开一些标志/开关? (我已经搜索了文档,找不到)
  • 我的环境有问题吗? (Python 2.7.3,pip 报告 regex==2014.12.24)
  • 图书馆有问题?
  • 还有别的吗?

请您参考如下方法:

它通过将 Ä 定义为 unicode 字符来工作。

>>> print regex.match('.', u'Ä').group() 
Ä 
>>> print regex.match('\X', u'Ä').group() 
Ä 

Python 2 和 Python 3 之间的主要区别在于处理文本和字节的基本类型。在 Python 3 上,我们有一种文本类型:str,它包含 Unicode 数据和两种字节类型 bytes 和 bytearray。

另一方面,在 Python 2 上,我们有两种文本类型:str,出于所有意图和目的,它仅限于 ASCII + 7 位范围以上的一些未定义数据,unicode 相当于Python 3继承自Python 3的str类型和单字节类型bytearray。

引用 - https://docs.python.org/2/howto/unicode.html#python-2-x-s-unicode-support