正则表达式捕获中此破折号字符的用途

时间:2018-04-24 02:04:23

标签: regex

我试图在这个正则表达式捕获子句

中理解-的目的
(?P<slug>[\w-]+)

这是我在搜索短划线时所提出的

  

短划线( - )可用于指定范围。所以破折号是一个   元字符,但只在一个字符类中。如果你想使用一个   字符类中的文字破折号,你应该用它来转义它   反斜杠,除非短划线是第一个或最后一个字符   人物类。因此,正则表达式[a-z]等于[az-]和[-az],   他们会匹配这三个角色中的任何一个。

我的问题是\ {

之后的-是什么

1 个答案:

答案 0 :(得分:1)

你正在看我的前CS教授所说的兔子(戴帽子):

(?P<slug>[\w-]+)

它是兔子的原因是因为通常你的研究是正确的,破折号被用作一系列角色的一部分。但在这种情况下,破折号是一个文字破折号,因为它出现在角色类的末尾。

所以这里[\w-]+表示匹配一个或多个单词字符文字破折号。

如果要在字符类中包含文字短划线,更安全的方法是将其转义:

[\w\-]+

然后,短划线可以放在班级的任何地方。