如何进行“向后”正则表达式搜索和提取

时间:2009-12-22 21:41:01

标签: php regex validation url url-rewriting

我有一堆用PHP解析的URL,如下所示:

www.example.com/shopping
shopping.example.com
example.com/pages/shopping

大约100个不同的页面(不只是购物 - 有些是联系,有些是方向等)。我有一组种子数据,告诉我在哪里查找页面名称,如下所示:

www.example.com/[pagename]
[pagename].example.com
example.com/users/[pagename]

我的问题是,如何使用种子数据从URL获取页面名称,告诉我它在哪里?

因此,如果我使用网址www.example.com/shopping,我想将其与www.example.com/[pagename]进行比较,然后从字符串中提取“shop”的页面名称。

1 个答案:

答案 0 :(得分:1)

[xyz]替换为第二个列表中的(.+),您可以使用正则表达式来匹配并从第一个列表中提取值。您还需要在行的其余部分中转义.之类的字符,以便它们不会被解释为特殊字符。

要进行更换,请使用:

preg_replace('/\[[^]]++\]/', '(.+)', $target)

其中++possessive quantifier