我正在用Java编写一个程序来接受查询。如果我有像
这样的查询insert
into
abc values ( e
, b );
...我可以使用什么正则表达式将其转换为:
insert into abc values(e,b);
...或:
insert:into:abc:values(e,b);
其实我想知道如何编写正则表达式来删除括号内的空格。
答案 0 :(得分:12)
假设正确平衡括号,并且没有嵌套括号,以下内容将删除括号内的所有空格(并且仅在那里):
String resultString = subjectString.replaceAll("\\s+(?=[^()]*\\))", "");
它转换
insert
into
abc values ( e
, b );
到
insert
into
abc values (e,b);
<强>解释强>
\s+ # Match whitespace
(?= # only if followed by...
[^()]* # any number of characters except parentheses
\) # and a closing parenthesis
) # End of lookahead assertion
答案 1 :(得分:0)
据我所知,你不需要RegEx。这应该有效:
yourString.replaceAll("\n", " ").replaceAll("( ","(").replaceAll(" )",")").replaceAll(", ",",").replaceAll(" ,",",");