【问题标题】:How to exclude quote in alphanumeric string如何在字母数字字符串中排除引号
【发布时间】:2012-01-22 23:58:29
【问题描述】:

这是示例字符串:

User.status  'actived'

我想要这个:

`User`.`status`  'actived'

但使用以下正则表达式:

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

结果是:

`User`.`status`  '`actived`'

上下文代码用法:

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

【问题讨论】:

  • 看起来您正试图转义一些 SQL 代码。你能提供更多关于你需要这个的背景信息吗?
  • 它是我正在开发的库的一部分。特定于 QueryBuilder。
  • @CristianGonzales 如果您需要添加说明(或特别是代码),它更适合对您的问题进行编辑而不是评论。只需点击问题底部徽章左侧的编辑链接即可。

标签: php regex replace


【解决方案1】:

/(?&lt;!['a-z0-9_])([a-z_]+[a-z0-9_]+)(?!['a-z0-9_])/i 可以做到这一点,使用否定的后瞻和否定的前瞻。

【讨论】:

  • 使用该正则表达式的结果是:`User`.`status` 'a`ctive`d'
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-16
  • 1970-01-01
  • 2014-04-26
  • 2021-03-07
  • 2021-09-19
相关资源
最近更新 更多