我有一个问题:
select last_name as lastname from table
我希望将“as”关键字更改为大写(我的脚本的其余部分才能正常运行),但仅限于单独使用。
当我使用这个脚本时:
$toupper = str_replace(array("select","from","where","order by", "group by", "as"),
array("SELECT","FROM","WHERE","ORDER BY", "GROUP BY","AS"),$query);
它还将更改具有“as”的其他字符串。 所以它变成了这个:
SELECT lASt_name AS lAStname FROM table
如何将“独立”关键字“as”替换为“AS”?
答案 0 :(得分:3)
你应该使用正则表达式来匹配整个单词:
$toupper = preg_replace("/\bas\b/", "AS", $query);
在单词之前和之后使用单词边界比在相同位置使用空格更有效,因为它匹配所有非单词字符,如空格,换行符,连字符等。您可以阅读有关锚\b
here。
答案 1 :(得分:0)
您几乎可以使用目前的确切代码。
由于AS
语句之前和之后始终有空格,因此只需稍微修改str_replace
以在as
和AS
之前和之后留出空格,如下所示:< / p>
$toupper = str_replace(array("select","from","where","order by", "group by", " as ",),array("SELECT","FROM","WHERE","ORDER BY", "GROUP BY"," AS "),$query);
结果是:
SELECT last_name AS lastname FROM table
通过这种方式,您可以保持几乎相同的代码。