单独站立时替换单词

时间:2014-09-10 13:37:27

标签: php mysql

我有一个问题:

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”?

2 个答案:

答案 0 :(得分:3)

你应该使用正则表达式来匹配整个单词:

$toupper = preg_replace("/\bas\b/", "AS", $query);

在单词之前和之后使用单词边界比在相同位置使用空格更有效,因为它匹配所有非单词字符,如空格,换行符,连字符等。您可以阅读有关锚\b here

的信息

答案 1 :(得分:0)

您几乎可以使用目前的确切代码。

由于AS语句之前和之后始终有空格,因此只需稍微修改str_replace以在asAS之前和之后留出空格,如下所示:< / 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

通过这种方式,您可以保持几乎相同的代码。