正则表达式以减少函数参数之间的空格

时间:2014-06-27 06:22:11

标签: java regex function whitespace

我有一个程序,我正在尝试比较两个文件。

文件1:

Void Function( Col1,
               Col2,
               Col3 )

文件2:

Void Function(Col1,Col2,Col3)

我应该使用什么正则表达式来移除空格并在()之间输入,因为我只想减少括号之间的空间而不是代码中的任何其他位置。

1 个答案:

答案 0 :(得分:2)

这是有问题的。任何纯Java正则表达式解决方案都必须妥协,因为要正确评估“我们是否在括号之间?”这个问题。要求我们(在最坏的情况下,取决于您的输入)来处理嵌套括号,字符串中的文本或不应修改的注释以及可能的其他边缘条件。

牢记这一点,一个简单的解决方案至少适用于您的示例(并且假设它不必处理嵌套的括号,注释或字符串,并且它不必检查括号是否实际属于函数定义),可能是

String result = subject.replaceAll("\\s+(?=[^()]*\\))", "");

如果它是一个右括号后面的下一个括号,则匹配并替换空格。