0

我有一个像这样的正则表达式

preg_match("/^\\s*(insert|delete|update|replace|create|drop|alter|use) /i",$query)

这是一个非常古老的功能的一部分,它负责我们网站上我们维护的几乎所有交易(它至少有 8 年历史......)

想象一下,当这个查询在这个正则表达式的测试中失败时,我的惊喜......

"DELETE
                    FROM KursSmer 
                    WHERE   IDKurs = '523' AND
                            IDSmer = '50' AND
                            IDSkolskaGodina = '1' AND
                            JeObavezan = '0'"

我花了大约 1 小时才找到那个讨厌的家伙……但我做到了……第一行末尾有一个 \n 行元素,紧挨着 DELETE 字……就像DELETE\n

现在,我想知道这是否可以纠正?

4

1 回答 1

5

您需要m多行的修饰符。

preg_match("/^\\s*(insert|delete|update|replace|create|drop|alter|use) /im",$query)

模式修饰符

于 2012-10-02T14:23:24.533 回答