【问题标题】:Oracle regex: \Q\E doesn't workOracle 正则表达式:\Q\E 不起作用
【发布时间】:2011-01-23 02:37:05
【问题描述】:

我发现\Q\E 在 oracle 中不起作用。
\Q\E for oracle regex 的等效表达式是什么?

【问题讨论】:

标签: regex oracle diacritics


【解决方案1】:

在 Perl 中,\Q 开始自动转义特殊字符,\E 停止这种行为。因此,在\Q \E 块中,点将被视为文字点而不是任何字符。

如果 Oracle 不支持这一点,则只需转义该块中的任何特殊字符。

【讨论】:

  • 照你说的做。它的工作。在java中看起来很糟糕:) myString.replaceAll( "\\(", "\\\\(" ).replaceAll("\\)", "\\\\)" 希望有更好的方法
【解决方案2】:

这是一个老问题,但使用 Java 你可以做到

Pattern.quote(yourString);

返回一个文字字符串。所以字符串. 将返回\Q.\E,这将被匹配器视为一个句点。

【讨论】:

    【解决方案3】:

    这是旧问题,但在 Oracle 数据库 11g 版本 11.2.0.1.0 中仍然是一个问题,我认为其他地方没有解决它。因此,如果它对其他人有帮助,我的解决方案是:

    从双重选择假人 其中 REGEXP_LIKE(dummy,REGEXP_REPLACE('X','([]\^.$|()[*+?{},])','\\\1'))

    【讨论】:

      猜你喜欢
      • 2015-08-26
      • 2014-04-11
      • 2014-03-31
      • 1970-01-01
      • 1970-01-01
      • 2020-07-08
      相关资源
      最近更新 更多