如何排除字母数字字符串中的引号


How to exclude quote in alphanumeric string

这是示例字符串:

User.status<gt;'活动'

我想要这个:

`User``状态`<gt;'活动'

但是使用以下正则表达式:

/([a-z_]+[a-z0-9_]+)/i

结果是:

`User``状态`<gt;'`活动`'

上下文代码用法:

protected function escapeExpression($expression)
{
    //$expression = "User.status <> 'actived'";
    //escapeKeyword returns '`' . $param . '`'
    return preg_replace('/([a-z_]+[a-z0-9_]+)/i', $this->escapeKeyword('$1'), $expression); 
}

/(?<!['a-z0-9_])([a-z_]+[a-z0-9_]+)(?!['a-z0-9_])/i会使用负向后看和负向前看。