Mod重写RegEx仅匹配前一个子集匹配

时间:2011-05-22 22:18:29

标签: regex mod-rewrite lookbehind

我正在尝试制作我认为与mod_rewrite一起使用的简单正则表达式。

我尝试了各种表达方式,其中许多我认为很有希望,但所有这些表达方式最终因某种原因而失败。一旦我添加了开始/结束字符串分隔符,它们似乎也都会失败。

例如,^user/(\d{1,10})(?=/)$是我尝试过的,但除此之外,它似乎将尾部斜杠分组,我只想对数字进行分组。我认为我需要使用积极的外观,但我遇到了困难,因为它正在寻找一个小组。

我想要匹配的是字符串,1)以“user /”开头,2)可能以(\d{1,10})/结尾(1到10位后跟一个斜杠)

应该匹配:

user/
user/123/
user/1234567890/

不应该匹配:

user
user//
user/-4/
user/35.5/
user/123
user/123//
user/123/5/
user/12345678901/

修改:抱歉格式化;我不明白如何通过此降价来格式化任何内容。这些例子前面有4个空格,我认为它应该是一个代码块,但显然我认为错了。

2 个答案:

答案 0 :(得分:1)

^user/(?:([0-9]{1,10})/)?$应该可以正常工作。

答案 1 :(得分:0)

这:^user(?=/)(/\d{1,10})?/$编辑:如果您想对数字进行分组,^user(?=/)(?:/(\d{1,10}))?/$