这是我要询问的模块:https://pypi.org/project/regex/,它是Matthew Barnett的
在项目描述页面中,V0和V1之间的行为差异被说明如下(请注意粗体字):
旧版与新版行为
为了与
- 版本0行为(旧行为,与re模块兼容):
请注意,re模块的行为可能会随时间而改变,并且我将努力在版本0中匹配该行为。
- 由
- 版本1行为(新行为,可能与re模块不同):
- 由
如果未指定版本,则regex模块将默认为
我自己尝试了一些例子,但没有弄清楚它的作用。
简单折叠和完全折叠之间有什么区别?你能提供一个例子,在 V1 中 (不区分大小写的) 正则表达式匹配了某些东西,但在 V0 中没有吗?
regex
。在项目描述页面中,V0和V1之间的行为差异被说明如下(请注意粗体字):
旧版与新版行为
为了与
re
模块兼容,此模块有两种行为:- 版本0行为(旧行为,与re模块兼容):
请注意,re模块的行为可能会随时间而改变,并且我将努力在版本0中匹配该行为。
- 由
VERSION0
或V0
标志或模式中的(?V0)
指示。
- Unicode中的不区分大小写匹配默认使用简单折叠大小写。- 版本1行为(新行为,可能与re模块不同):
- 由
VERSION1
或V1
标志或模式中的(?V1)
指示。
- Unicode中的不区分大小写匹配默认使用完全折叠大小写。如果未指定版本,则regex模块将默认为
regex.DEFAULT_VERSION
。我自己尝试了一些例子,但没有弄清楚它的作用。
Python 3.6.7 (default, Oct 22 2018, 11:32:17)
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import regex
>>> r = regex.compile("(?V0i)и")
>>> r
regex.Regex('(?V0i)и', flags=regex.I | regex.V0)
>>> r.search("И")
<regex.Match object; span=(0, 1), match='И'>
>>> regex.search("(?V0i)é", "É")
<regex.Match object; span=(0, 1), match='É'>
>>> regex.search("(?V0i)é", "E")
>>> regex.search("(?V1i)é", "E")
简单折叠和完全折叠之间有什么区别?你能提供一个例子,在 V1 中 (不区分大小写的) 正则表达式匹配了某些东西,但在 V0 中没有吗?