preg_replace():编译失败

时间:2015-06-22 13:27:29

标签: php preg-replace

有谁在这里可以帮助我吗? 模式是

/\[url=?\]([a-z0-9:\.\\\/-\s]*?)\[\/url\]/isS

错误:

  

preg_replace():编译失败:偏移量为26的字符类中的无效范围

2 个答案:

答案 0 :(得分:1)

Escape minus( - )

QRegion

Demo

答案 1 :(得分:1)

这应该适用于PHP(PCRE):

/\[url=?\]([a-z0-9:\.\\\/\-\s]*?)\[\/url\]/is

首先转义字符类语句-中的[],否则会出现错误的范围错误。

其次/S修饰符可能不适合您的模式。阅读:

  

当一个模式要多次使用时,值得花钱   更多的时间来分析它,以加快所需的时间   匹配。如果设置了此修改器,则进行此额外分析   执行。目前,研究模式仅对其有用   非锚定模式,没有一个固定的起始   字符。

Source

测试正则表达式regex101.com非常好。

相关问题