php - preg_match() : Unknown modifier ')'

标签 php regex

代码:

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

代码测试位置:http://www.phpliveregex.com/p/ivO

在我本地我得到:

preg_match(): Unknown modifier ')'

PHP 5.6.26

最佳答案

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

我建议

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

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

关于php - preg_match() : Unknown modifier ')' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41570558/

相关文章:

php - couchbase - 如何在 php 中使用 getandlock

java - Java 验证中的正则表达式帮助

ios - 确认密码的正则表达式

php - 使用 PHP/CalDAV 读取 Apple/iCloud 日历数据

php - 如何计算一个非常大的字符串中的新行?

php - 如何防止 PHP 中的 SQL 注入(inject)?

javascript - 在 codeigniter 中使用 jquery 显示确认消息

c# - 如何创建需要 4 个字符且无空格的正则表达式?

c++ - RegExp 查找命令行参数

javascript - 在JS中匹配之前未匹配的正则表达式(url vs图片)