正则表达式未知修饰符

时间:2016-02-16 07:51:11

标签: php

当使用与某些html混合的preg_replace时,我一直收到此错误。

警告:preg_replace():未知修饰符'd'

这是我使用的代码。

它从包含html的字符串的开头删除了那一点html。

$foo = preg_replace("/^<div id='IDHERE'>sometext.</div>/", '', $foo);

4 个答案:

答案 0 :(得分:1)

您需要转义/,因为它用于结束正则表达式字符串的第一部分,之后使用修饰符,例如g(全局),d是那里不是一个有效的选项(来自div的d)。

将其设为\/

            $foo = preg_replace("/^<div id='IDHERE'>sometext.<\/div>/", '', $foo);

答案 1 :(得分:0)

退出结束</div>代码:

$foo = preg_replace("/^<div id='IDHERE'>sometext.<\/div>/", '', $foo);

PHP正在将结束div标记中的正斜杠解释为表达式的结尾:

/^<div id='IDHERE'>sometext.</div>/
                             ^ PHP thinks this is the end,
                               then complains about the unknown modifier 'd'

答案 2 :(得分:0)

在您的模式中添加\

 $foo = preg_replace("/^<div id='IDHERE'>sometext.<\/div>/", '', $foo);

here参考。

答案 3 :(得分:0)

您需要在/中转义</div>,因此您的正则表达式应为:

$foo = preg_replace("/^<div id='IDHERE'>sometext.<\/div>/", '', $foo);