为什么\ d +只匹配这个python regexp中的一个数字?

时间:2016-04-08 11:29:58

标签: python regex

Regexp:editClassification/(?P<pk>[\d+])

要匹配的字符串:foo/editClassification/10

pythex example

2 个答案:

答案 0 :(得分:2)

因为\d+在字符类([...])内; [\d+]只匹配一个数字或+的字符。

你应该写(?P<pk>\d+)代替。

答案 1 :(得分:1)

您的\d+位于字符类中(可在Regexp TutorialPHP Docs找到更多信息)。这意味着选择了里面的任何字母。例如,(a|b|c)等同于字符类[abc]。所以你的角色类匹配一个数字或+

您应该移除[周围的]方括号\d+。您的新RegEx:

editClassification/(?P<pk>\d+)

或者,您可以将+移到字符类之外,但这只会浪费空间。

Live Demo on Pythex