preg_match():未知的修饰符')'

时间:2017-01-10 13:56:17

标签: php regex

代码:

  preg_match("/(\/.*?\/)((?:[^\/]|\\\/)+?)(?:(?<!\\)\s|$)/", $line, $matches);

代码测试时间为:http://www.phpliveregex.com/p/ivO

在我当地,我得到:

  

preg_match():未知的修饰符&#39;)&#39;

PHP 5.6.26

1 个答案:

答案 0 :(得分:4)

主要问题是你没能正确地逃避反斜杠。您需要四个反斜杠来匹配PHP字符串文字中的文字反斜杠。此外,如果您的模式包含这么多反斜杠,您应该考虑使用不同的正则表达式分隔符。

我建议

 preg_match("~(/.*?/)((?:[^/]|\\\\/)+?)(?:(?<!\\\\)\s|$)~", $line, $matches);

作为正则表达式分隔符的波浪号将使模式更清晰,因为不再需要转义反斜杠。