【问题标题】:parsing string according to oracle operators with regex使用正则表达式根据 oracle 运算符解析字符串
【发布时间】:2010-03-30 12:29:59
【问题描述】:

基本上我试图用它的实际值替换字符串的一部分,它紧跟在 oracle 运算符之后。我可以为有限的操作员列表(如{=,>,<})执行此操作,但我想知道有没有办法收集所有操作员而不是手动提供?例如,我有这个字符串; "a = xyz",然后我会用 3 替换 xyz。但如您所知,我们有一堆运营商,即"like,in,exists etc"。所以我的字符串也可以是:"a like xyz"

那你有什么建议?

谢谢。

【问题讨论】:

  • 所以基本上您是在编写自己的 Oracle SQL 语句解析器?你最好有一个很好的理由。

标签: java regex oracle operators


【解决方案1】:

那你有什么建议?

我建议不要使用正则表达式来执行此操作(正则表达式无法这样做),而是使用现有的、经过验证的 SQL 解析器。

在 SO 上查看这个问题:SQL parser library for Java

【讨论】:

    【解决方案2】:

    让您的工作更简单 - 代表调用者需要非常严格的语法。

    例如,要求字符串采用“目标运算符#variable#”的形式,例如“a = #xyz#”。

    那么,你需要做的就是使用REPLACE(input, '#xyz#', 3)

    如上所述,您可能不想重新发明 Oracle SQL 语句解析器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-10
      • 2010-11-22
      • 2011-10-14
      • 2022-01-25
      • 1970-01-01
      相关资源
      最近更新 更多