簡體   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