我的正则表达式试图修复无效的SQL有什么问题?

时间:2014-10-21 16:06:26

标签: java regex

在某些情况下,我的SQL查询无效

select
        foo  as foo,
        bar  as bar,
    from
      ...

请注意from之前的逗号。

现在我认为很容易检测到逗号在使用正则表达式之前的时间并替换它...

我试过

query.replaceAll("(?s)\\, *\\n* *from", "(\\n) from")
  • 可以使用多个中断线来解释\\n*
  • 逗号之后可以有多个空格,这可以解释\\, *
  • 可以在 之前有空格来解释*from

现在我正试图用断裂线替换它,接着是来自,如你所见。

但没有任何东西被替换,我错过了什么?

1 个答案:

答案 0 :(得分:1)

,\s*from

尝试使用\nfrom替换。请参阅演示。

http://regex101.com/r/rQ6mK9/26

修改,因为它被标记为Java,请使用System.getProperty("line.separator") + " from"代替\nfrom