在某些情况下,我会遇到无效的 SQL 查询
select
foo as foo,
bar as bar,
from
...
注意 from 之前的逗号。
现在我认为用正则表达式可以很容易地检测到 from 之前的逗号并替换它...
我尝试过
query.replaceAll("(?s)\\, *\\n* *from", "(\\n) from")
- 可能有多个断行,这解释了
\\n*
- 逗号后面可以有多个空格,这解释了
\\, *
- from 之前可以有空格,这解释了
*from
现在,我尝试用断行线替换它,后跟 from,如您所见。
但是没有任何东西被替换,我错过了什么?
最佳答案
,\s*from
试试这个。替换为 \nfrom
。请参阅演示。
http://regex101.com/r/rQ6mK9/26
编辑:由于它被标记为 Java,因此使用 System.getProperty("line.separator") + "from"
进行替换,而不是 \nfrom
.
关于java - 我的正则表达式试图修复无效的 SQL 有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26491216/