我有一个程序,我正在尝试比较两个文件。
文件1:
Void Function( Col1,
Col2,
Col3 )
文件2:
Void Function(Col1,Col2,Col3)
我应该使用什么正则表达式来移除空格并在(
和)
之间输入,因为我只想减少括号之间的空间而不是代码中的任何其他位置。
答案 0 :(得分:2)
这是有问题的。任何纯Java正则表达式解决方案都必须妥协,因为要正确评估“我们是否在括号之间?”这个问题。要求我们(在最坏的情况下,取决于您的输入)来处理嵌套括号,字符串中的文本或不应修改的注释以及可能的其他边缘条件。
牢记这一点,一个简单的解决方案至少适用于您的示例(并且假设它不必处理嵌套的括号,注释或字符串,并且它不必检查括号是否实际属于函数定义),可能是
String result = subject.replaceAll("\\s+(?=[^()]*\\))", "");
如果它是一个右括号后面的下一个括号,则匹配并替换空格。