2

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

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

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

我要匹配的是1)以“用户/”开头和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 个空格,我认为这些空格应该构成一个代码块,但显然我想错了。

4

2 回答 2

1

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

于 2011-05-22T22:42:48.687 回答
0

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

于 2011-05-22T22:39:53.297 回答