正则表达式:从URL中提取第一个和最后一个子目录

时间:2011-10-10 10:04:41

标签: regex wordpress url-rewriting

我需要一个匹配两个虚拟文件夹的正则表达式;给定网址中的第一个和最后一个:

www.example.com/的 first_folder /一些/附加/串/的/文件夹/的 last_folder /

到目前为止,我有这个正则表达式:(?<!/)/[^/?#]+但它匹配所有文件夹:(

我需要这个才能在WordPress中使用重写规则。将http://mysite/project/1重写为http://mysite/index.php?pagename=project&id=1的快速而肮脏的示例:

$newrules = array();
$newrules['(project)/(\d*)$'] = 'index.php?pagename=$matches[1]&id=$matches[2]';

1 个答案:

答案 0 :(得分:2)

快速而肮脏的解决方案,即没有使用十亿种可能的网址等组合进行彻底测试,因此请将其与一粒盐一起服用..

.*?/(\w+)/.*?/(\w+)/$

输入:

  

www.example.com/first_folder/some/additional/bunch/of/folders/last_folder /

输出:

$1 prints first_folder
$2 prints last_folder