正则表达式在新线上失败

时间:2012-10-02 14:22:36

标签: php regex

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

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

这是一个非常古老的功能的一部分,它负责我们维护的网站上的所有交易(就像8岁时最小......)

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

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

我花了大约1小时才得到了讨厌的家伙...但我做到了......在第一行的末尾有一个\ n行元素,就在DELETE字的旁边......就像{{1} }

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

1 个答案:

答案 0 :(得分:5)

多行需要m修饰符。

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

Pattern Modifiers