我需要一个带有以下属性的正则表达式(用于.htaccess),最多可捕获三位数字及其后面的文本:
匹配:
/1-my-blog-post/
/100-another-blog-post/
不匹配:
/1/
/100/
到目前为止,我有:
RewriteRule ^(\d{1,2,3}\w+)/$ /post.php?s=$1 [L]
提前致谢,因为它真的让我烦恼!
答案 0 :(得分:1)
我在你的正则表达式中看到了一些问题
^(\d{1,2,3}\w+)/$
\d{1,2,3}
必须为\d{1,3}
,您只需提供最低金额和最高金额
\w
还包括数字和_
,但不包括-
也许更好的解决方案是
^/(\d{1,3}[a-zA-Z-]+)/$
[a-zA-Z-]
是一个字符类,它匹配内部定义的字符。我不知道字母范围a-zA-Z是否适合您,但您可以将任何想要匹配的字符添加到类中[a-zA-ZöäüÖÄÜ&?-]
答案 1 :(得分:0)
在Perl中它将是
^\d{1,3}[^\d].*
我假设3个数字之后的字符不能是数字,当然,它是从字符串的开头收到的(正如你在你的例子中所说)