繁体   English   中英

正则表达式删除Java中括号周围的空格

[英]Regex to remove spaces around parenthesis in Java

我想做的是更改诸如printf ( ... ); printf(...); 带有正则表达式 我已经尝试过line = line.replaceAll("\\\\s([(])\\\\s", "("); ,但这不起作用。我应该使用什么表达式?

您可以使用

"\\s*\\(\\s*([^)]*?)\\s*\\)\\s*"

并替换为($1) 正则表达式演示

问题的关键是,在两侧()可以匹配空格与\\s* ,但是为了前的空格匹配) ,则需要自使用延迟匹配[^)] ,任何字符相匹配,但一)能也匹配空格。

或者,只需匹配任何()周围的所有空格:

"\\s*([()])\\s*"

并替换为$1

观看另一个演示

如果您的字符串的括号中可能包含空格,那么您应该考虑解析Java,而不是使用正则表达式进行解析。 这个项目有一个看起来有用的Java解析器:

https://github.com/javaparser/javaparser

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM