正面LookBehind与正则表达式

时间:2015-01-28 23:19:13

标签: regex coldfusion coldfusion-11

我正在努力改善正则表达式

我一直在尝试编写一个正则表达式来获取像这样的字符串

404;http://subdomain.example.com:80/some-path/gallery/name-of-the-brand/23/?id=56&somethingelse=24...

并将返回

http://subdomain.example.com/some-path/gallery/

所以我正在编写2个正则表达式,然后将它们串在一起。我确信有一种方法可以同时做到这一切,但我不知道。第一个是http //子域和域:

[http://]+([a-z]+[\.])?[a-z]+[\.][a-z]+

然后我正在尝试为/ some-path / gallery /写一个,所以我拿了第一个并添加了端口并尝试使用是一个lookbehind但我没有正确地做。

(?<=[http://]+([a-z]+[\.])?[a-z]+[\.][a-z]+?([0-9-:]+)[/]

这将在Coldfusion服务器上运行

1 个答案:

答案 0 :(得分:1)

也许是这样的:

^(\d+[;])?((http:\/\/)([^/:]*))([:]\d+)?((\/[^/]*)(\/[^/]*)\/).*$

这个正则表达式提取(子)域和前2个文件夹都很好地分组到捕获组2和6.下面的例子:

http://regexr.com/3aaii