您可以将 preg_replace 正则表达式与“not”一起使用吗?健康)状况?
我正在使用 SQL 字符串,需要将 "SELECT"
替换为 "SELECT SQL_CALC_FOUND_ROWS"
。因为我并不总是知道 SQL 是什么,所以它可能已经有 SQL_CALC_FOUND_ROWS,所以我需要考虑这种情况,并且在这种情况下不匹配。
这是我到目前为止所拥有的:
preg_replace('/(^\s+SELECT)/i', 'SELECT SQL_CALC_FOUND_ROWS',$sql);
这将返回: 从表中选择 SQL_CALC_FOUND_ROWS *
用于:
“\n 从表中选择 *”
或者
“从表中选择*”
我可以这样做:
<代码> if (!stristr($sql,'SQL_CALC_FOUND_ROWS') ) { // 做我的替换 }
但是有没有一种方法可以在一个 preg_replace 中完成这一切,和/或者它是否更快(我预计这将被广泛使用)?
I'm working with SQL strings, and need to replace "SELECT"
with "SELECT SQL_CALC_FOUND_ROWS"
. Because I don't always know what the SQL is, there's potential that it will already have SQL_CALC_FOUND_ROWS so I need to account for that case, and not match in that case.
This is what I have so far:
preg_replace('/(^\s+SELECT)/i', 'SELECT SQL_CALC_FOUND_ROWS',$sql);
This will return:SELECT SQL_CALC_FOUND_ROWS * FROM table
FOR:
"\n SELECT * from table"
OR
"SELECT * from table"
I can do:
if (! stristr($sql,'SQL_CALC_FOUND_ROWS') )
{
// do my replacement
}
But is there a way to do this all in one preg_replace, and/or is it any faster (I expect this will be used quite extensively)?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用负前瞻:
You could use a negative lookahead: