python正则表达式 - 什么 - (破折号)的意思

时间:2011-08-10 15:32:53

标签: python regex

我知道它可以表示范围,但是例如这里[-.\d]似乎这意味着十进制数。正则表达式前面的破折号是什么意思? 另外,除[]之外,为什么还有()()是什么意思?

5 个答案:

答案 0 :(得分:7)

[-.\d]找到一个字符[])短划线(-),句点(.)或数字(\d)。

围绕平均分组的括号,以便稍后可以使用group()对象的Match方法访问匹配的值。

另请参阅documentation of the re module

答案 1 :(得分:5)

-在这里并不意味着什么特别的,它实际上是匹配破折号(可能正在寻找用作减号的破折号)。 .也是字面值 - 它将匹配一个点(可能用于小数点)。 \d将匹配任何数字(0-9)。如果您在示例的末尾添加*+乘数,则表示它将匹配任何数字:正数,负数或浮点数。

使用的()括号标记组的开头和结尾,并且在执行匹配后可以检索组的内容。

有关详细信息,请参阅http://docs.python.org/library/re.html

答案 2 :(得分:3)

这意味着“破折号”。他们可能期望一些负数(即-0.5)。 ()表示它正在捕获匹配项。

答案 3 :(得分:0)

记住[]它代表一个字符类,它下面的每一个东西都会被认为是字符串中可以出现的字符,(除非你像使用\ d +一样在字符类中转义它),例如[\d-+]+现在在这种情况下 - 和+ inside []只是符号,+在字符类外面的+现在是正则表达式重复符号。

答案 4 :(得分:0)

来自re documentation

<块引用>

如果 - 被转义(例如 [a-z])或者如果它被放置为第一个或最后一个 字符(例如 [-a] 或 [a-]),它将匹配文字“-”。