答案 0 :(得分:2)
因为\d+
在字符类([...]
)内; [\d+]
只匹配一个数字或+
的字符。
你应该写(?P<pk>\d+)
代替。
答案 1 :(得分:1)
您的\d+
位于字符类中(可在Regexp Tutorial或PHP Docs找到更多信息)。这意味着选择了里面的任何字母。例如,(a|b|c)
等同于字符类[abc]
。所以你的角色类匹配一个数字或+
。
您应该移除[
周围的]
方括号\d+
。您的新RegEx:
editClassification/(?P<pk>\d+)
或者,您可以将+
移到字符类之外,但这只会浪费空间。