2011-08-10 45 views
2

我知道它可以表示范围,但例如这里[-.\d]看起来像这意味着十进制数。正则表达式前面的破折号符号是什么意思? 另外,为什么除了[],他们周围是否有()()是什么意思?python正则表达式 - 什么 - (短划线)的意思是

+0

[ - 。\ d]在正则表达式上下文中是字符' - ','。'的集合。和数字0-9。 \ d表示正则表达式中的数字。 – arunkumar

+2

我不认为它是在当前答案中提到的,但是在一个字符类(方括号)内,短划线也可以指定一个范围。例如'[a-d]'可以匹配a,b,c或d。 '-'必须是第一个字符(就像在你的例子中),意思是“匹配一个文字'-'字符”。 –

回答

6

[-.\d]发现一个字符要么是[])破折号(-),一个周期(.)或数目(\d)。

括号周围意味着分组,从而使匹配的值可在以后使用Match对象的group()方法来访问。请参阅documentation of the re module

3

它的意思是“破折号”。他们可能会期望一些负数(即-0.5)。 ()意味着它正在捕获比赛。

+0

你是什么意思?这里的小数点是如何编码的?看起来像。有特殊的性格。 (点)当你有一些数字,然后小数点,然后更多的数字,它是如何工作的? [和]之间的 – Trup

+3

,所有特殊字符都会被转义。所以如果你看到:([ - 。\ d] +),它可能意味着“找到任何数字(整数,浮点数,负数等)并将其存储在某处以供重用”。 – Simon

4

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

用于标记组的开始和结束的()括号可以在执行匹配后检索组的内容。

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

+0

那么[]是什么,那么,如果()表示一个组? – Trup

+0

[]括号用于创建一个匹配其中任何内容的表达式。例如'[abc]'将匹配'a'或'b'或'c'。而'abc'只会匹配三个连续的字符'abc'。 –

+0

so([abc])等价于(a | b | b)? – Trup

0

请记住[]它表示一个字符类,它下面的每个东西都将被视为可以字符串呈现的字符,(除非在字符类中像在\ d +中那样在字符类中转义它)。 [\d-+]+现在在这种情况下, - 和+里面[]只是简单的符号,字符类外面的+现在是正则表达式重复符号。

相关问题