正则表达式删除 Java 中括号周围的空格
Regex to remove spaces around parenthesis in Java
我想做的是用正则表达式将 printf ( ... );
更改为 printf(...);
。我试过 line = line.replaceAll("\s([(])\s", "(");
的变体,但这不起作用。我应该使用什么表达方式?
您可以使用
"\s*\(\s*([^)]*?)\s*\)\s*"
并替换为()
。参见 regex demo
重点是(
和)
两边可以用\s*
匹配空格,但是为了匹配)
之前的空格,您需要使用惰性匹配,因为 [^)]
可以匹配任何字符,但是 )
也可以匹配空格。
或者,只匹配任何 ()
:
周围的所有空格
"\s*([()])\s*"
并替换为
。
如果您的字符串可能包含括号周围的空格,那么您应该考虑解析 Java 而不是使用正则表达式来执行此操作。这个项目有一个 Java 看起来可用的解析器:
我想做的是用正则表达式将 printf ( ... );
更改为 printf(...);
。我试过 line = line.replaceAll("\s([(])\s", "(");
的变体,但这不起作用。我应该使用什么表达方式?
您可以使用
"\s*\(\s*([^)]*?)\s*\)\s*"
并替换为()
。参见 regex demo
重点是(
和)
两边可以用\s*
匹配空格,但是为了匹配)
之前的空格,您需要使用惰性匹配,因为 [^)]
可以匹配任何字符,但是 )
也可以匹配空格。
或者,只匹配任何 ()
:
"\s*([()])\s*"
并替换为。
如果您的字符串可能包含括号周围的空格,那么您应该考虑解析 Java 而不是使用正则表达式来执行此操作。这个项目有一个 Java 看起来可用的解析器: