如何使正则表达式不匹配文本,点,文本的顺序,但只匹配文本

时间:2012-08-24 15:55:30

标签: php regex

我有以下正则表达式:

[^/]+\/?\.\.\/

应该通过用空格替换上面的匹配来将相对转换为绝对URL。

示例:

http://abv.bg/path/../test

应转换为

http://abv.bg/test

如果我通过

,请帮我修改一下
http://abv.bg/../test

它不会删除域名。

我需要让“[^ /] +”不要将文字与中间某处的点匹配。

2 个答案:

答案 0 :(得分:1)

这应该有效:

((^(?:http://)*[\w.]+)(/.*)(/[\w]+))

替换为:

$2$4

DEMO

更新了正则表达式并使http://部分可选。

答案 1 :(得分:0)

删除(\/[^\/.]+)?\/\.\.符合您的要求,但请注意我的意见。