嗨stackoverflow社区!
我想在PHP中使用一个简单的正则表达式表达式,基于正面后视。我的目标是提取域名和一组特定字符(?或&或/)之间的URL中的所有内容。我想提取 “栏” 上的那些例子:PHP的正则表达式:几个停止字符积极lookbehind
foo.com/bar?
foo.com/bar&
foo.com/bar/
我试图
(?<=foo\.com\/)[^/?&]+
它工作正常the plateform test 但与PHP 5.3x preg_match:错误thr自己的是,我不能使用几个停止字符 - 它适用于一个。
我也尝试了积极lookbehind/lookahead的组合,但问题仍然相同。 我做错了什么?
你封闭正则表达式里面的分隔符?你能告诉我们你的代码吗? – Toto 2012-03-16 12:24:49
@ M42肯定!这里是:'preg_match(“/(?<= foo \ .com \ /)[^ /?&] + /”,“http://www.foo.com/bar?”,$ result);' – 2012-03-16 12:33:37
您需要转义所有斜线:'/(?<= foo \ .com \ /)[^ \ /?&] + /'包括字符类中的一个。 – Toto 2012-03-16 12:35:18