需要正则表达式来匹配两个相似的URL模式

时间:2010-08-04 05:55:21

标签: regex .htaccess

我需要一个带有以下属性的正则表达式(用于.htaccess),捕获四位数字及其后的文本:

匹配度:
/ 9876 / text_text_more_text_still_more_text
/ 8765 / 1234_text_text_text

不匹配:
/ 2010/08/01 / text_text_more_text_still_more_text
/ 2010/08/01 /文本文本更文本仍然更文本

到目前为止,我有:
/([0-9] +)/([^ - /] +)

不幸的是,这与不匹配模式相匹配。我绝对是正则表达式的新手,但我想如果我有一个正确方向的指针,我可以弄明白。

提前致谢。

3 个答案:

答案 0 :(得分:1)

使用此正则表达式

^/\d{4}/[^/]*?$

答案 1 :(得分:1)

试试这个:

^/(\d{4})/(\w+)$

答案 2 :(得分:0)

如果整个字符串只是URL,您可以尝试以下模式:

^/[0-9]+/(([0-9]{4}_)?[^/]+)$

快速解释我的方法

  • ^ 表示字符串的开头, $ 表示字符串的结尾
  • / [0-9] + / 是第一个数字网址
  • ([0-9] {4} _)?是附加的可选起始四位数字。
  • [^ /] + 将代表字符串末尾不包含正斜杠的任何字符。