gpt4 book ai didi

python - python re中的可能错误

转载 作者:太空宇宙 更新时间:2023-11-04 06:46:23 26 4
gpt4 key购买 nike

我有以下代码:

import re
r = re.compile(r'[*-/]')
print r.match('.') is not None

它打印 True,表示 '.' 匹配给定的正则表达式,但它不匹配。我是否遗漏了正则表达式中明显的内容?

我在 osx 10.8.2 上使用 cpython 2.7.3

如果 [] 集中的三个字符中的任何一个被删除,它都有效。

最佳答案

当您编写以下内容时,

r = re.compile(r'[*-/]')

-的使用实际上意味着匹配*/之间的任何字符。如果您查看 ascii 表,

*      42
+ 43
, 44
- 45
. 46
/ 47

这就是它匹配 . 字符的原因。您当前的正则表达式也将匹配,

>>> print r.match('+')
<_sre.SRE_Match object at 0x100483370>
>>> print r.match(',')
<_sre.SRE_Match object at 0x100483370>

要更正正则表达式,使其只匹配 *-/,您可以转义 - 像这样,

r = re.compile(r'[*\-/]')

那么你没有得到 的匹配项。

>>> print r.match('.') is not None
False

关于python - python re中的可能错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15992879/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com