PHP正则表达式:几个具有正向查找的停止字符

PHP正则表达式:几个具有正向查找的停止字符,php,regex,lookbehind,Php,Regex,Lookbehind,嗨,我的社区 我试图在PHP中使用一个简单的正则表达式,该表达式基于正向查找。我的目标是提取URL中域名和一组特定字符(?or&or/)之间的所有内容。我想在这些示例中提取“bar”: foo.com/bar? foo.com/bar& foo.com/bar/ 我试过了 (?<=foo\.com\/)[^/?&]+ (?在PHP中,与(比如)JavaScript不同,即使在字符类中,也不能在不转义的情况下使用正则表达式分隔符。因此,您需要更改以下内容: "/(?<

嗨,我的社区
我试图在PHP中使用一个简单的正则表达式,该表达式基于正向查找。我的目标是提取URL中域名和一组特定字符(?or&or/)之间的所有内容。我想在这些示例中提取“bar”:

  • foo.com/bar?
  • foo.com/bar&
  • foo.com/bar/
我试过了

(?<=foo\.com\/)[^/?&]+  
(?在PHP中,与(比如)JavaScript不同,即使在字符类中,也不能在不转义的情况下使用正则表达式分隔符。因此,您需要更改以下内容:

"/(?<=foo\.com\/)[^/?&]+/"
“/(?跳过斜杠:

preg_match("/(?<=foo\.com\/)[^\/?&]+/", "http://www.foo.com/bar?", $result);
                      here ___^

preg\u match(“/”)你把正则表达式括在分隔符里了吗?你能给我们看看你的代码吗?@M42当然!给你:
preg\u match(“/”)你需要避开所有的斜杠:
/(?ho!谢谢你,42先生!
preg_match("/(?<=foo\.com\/)[^\/?&]+/", "http://www.foo.com/bar?", $result);
                      here ___^
preg_match("#(?<=foo\.com/)[^/?&]+#", "http://www.foo.com/bar?", $result);