2011-08-17 65 views
2

我需要一個正則表達式(在.htaccess中使用)具有以下屬性,捕捉到一個三位數字和文本以下是:需要正則表達式匹配,而類似的URL模式

比賽:

/1-my-blog-post/ 
/100-another-blog-post/ 

不匹配:

/1/ 
/100/ 

到目前爲止,我有:

RewriteRule ^(\d{1,2,3}\w+)/$ /post.php?s=$1 [L] 

在此先感謝,因爲它確實在擾亂我!

回答

1

我看到你的正則表達式的一些問題

^(\d{1,2,3}\w+)/$ 

\d{1,2,3}必須是\d{1,3}你只要給最小和最大金額

\w還包括數字和_但不-

也許一個更好的解決辦法是

^/(\d{1,3}[a-zA-Z-]+)/$ 

看到它here online on Regexr

[a-zA-Z-]是一個字符類,從定義什麼字符匹配內。我不知道字母範圍a-zA-Z是否適合你,但是你可以添加任何你想匹配的字符到這個類中[a-zA-ZöäüÖÄÜ&?-]

+0

它沒有完全匹配我想要做的,但我從你的答案中找出它。謝謝 – 2011-08-30 22:28:05

0

在Perl這將是

^\d{1,3}[^\d].* 

我假設的3個數字後的字符不能是數字,當然,它從字符串的開頭是recived(因爲你把它放在你的榜樣)

+0

我建議你試試這個,因爲大多數正則表達式在其他語言是從Perl複製的。 – m0skit0 2011-08-17 13:03:36