删除括号内的空格的正则表达式是什么?

时间:2011-10-11 19:01:31

标签: java regex

我正在用Java编写一个程序来接受查询。如果我有像

这样的查询
insert    
into  
abc      values   (    e   
, b    );

...我可以使用什么正则表达式将其转换为:

insert into abc values(e,b);

...或:

insert:into:abc:values(e,b);

其实我想知道如何编写正则表达式来删除括号内的空格。

2 个答案:

答案 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(" ,",",");