python正则表达式—(破折号)是什么意思

python正则表达式—(破折号)是什么意思,python,regex,Python,Regex,我知道它可以表示范围,但例如这里的[-.\d]似乎表示十进制数。正则表达式前面的破折号是什么意思? 还有,为什么除了[],它们周围还有()?()是什么意思?它的意思是“破折号”。他们可能期望一些负数(即-0.5)。()表示它正在捕获匹配项 [-.\d]查找一个字符,该字符可以是([])破折号(-)、句点()或数字(\d) 括号表示分组,以便以后可以使用Match对象的group()方法访问匹配的值 另请参见。此处的-没有任何特殊含义,它实际上是匹配破折号(可能是寻找用作减号的破折号)。也是文字,

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

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

[-.\d]
查找一个字符,该字符可以是(
[]
)破折号(
-
)、句点(
)或数字(
\d

括号表示分组,以便以后可以使用
Match
对象的
group()
方法访问匹配的值


另请参见。

此处的
-
没有任何特殊含义,它实际上是匹配破折号(可能是寻找用作减号的破折号)。
也是文字,它将匹配一个点(可能用于小数点)。
\d
将匹配任何数字(0-9)。如果在示例末尾添加一个
*
+
乘法器,它将匹配任何数字:正、负或浮点

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


请参阅以获取更多信息。

请记住,[]它代表一个字符类,它下面的所有内容都将被视为可以以字符串形式出现的字符(除非您像使用\d+一样在字符类中转义它,例如,
[\d-+]+
,在本例中,[]内的-和+只是符号,字符类外部的+现在是regex重复符号。

来自

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


[-.\d]在正则表达式上下文中是字符'-','.'和数字0-9的集合\d表示正则表达式中的数字。我认为当前的答案中没有提到它,但在字符类(方括号)中,破折号也可以指定范围。例如
[a-d]
将匹配
a
b
c
d
-
必须是第一个字符(如您的示例中所示),表示“匹配文字
-
字符”。捕获是什么意思?这里的小数点是如何编码的?看起来像是。这是一种特殊的性格。(点)当您有一些数字,然后是小数点,然后是更多的数字时,它是如何工作的?在[和]之间,所有特殊字符都被转义。因此,如果您看到:([-.\d]+),它可能意味着“查找任何数字(整数、浮点、负数等)并将其存储在某个位置以供重用”。那么,如果()表示一个组,则[]的作用是什么?括号[]用于创建一个表达式,该表达式将匹配其中的任何一个。例如,
[abc]
将匹配
a
b
c
。然而,
abc
将只匹配三个连续字符
abc
。因此([abc])相当于(a | b | b)某种程度上,尽管
可以用于或整个正则表达式,而
[]
仅用于构建一组可以匹配的单个字符。您应该真正阅读提供的链接。。。尝试单击它,并在页面上对[]进行研究(ctrl+f)。我发誓它不会伤到你的手指。那不是一个有效的python正则表达式。要么将破折号放在开头或结尾,要么用它来表示一个范围。