Каково регулярное выражение для удаления пробелов внутри скобок? - PullRequest
4 голосов
/ 11 октября 2011

Я пишу программу на Java для приема запросов. Если у меня есть запрос типа

insert    
into  
abc      values   (    e   
, b    );

... какое регулярное выражение я могу использовать, чтобы преобразовать это в:

insert into abc values(e,b);

... или:

insert:into:abc:values(e,b);

На самом деле я хочу знать, как мне написать регулярное выражение для удаления пробелов только в скобках.

Ответы [ 2 ]

12 голосов
/ 11 октября 2011

При условии правильно сбалансированных скобок и без вложенных скобок, следующее удалит все пробелы в скобках (и только там):

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

Преобразует

insert    
into  
abc      values   (    e   
, b    );

в

insert    
into  
abc      values   (e,b);

Объяснение:

\s+      # Match whitespace
(?=      # only if followed by...
 [^()]*  # any number of characters except parentheses
 \)      # and a closing parenthesis
)        # End of lookahead assertion
0 голосов
/ 11 октября 2011

Насколько я понимаю, вам не нужен RegEx для этого.Это должно работать:

yourString.replaceAll("\n", " ").replaceAll("( ","(").replaceAll(" )",")").replaceAll(", ",",").replaceAll(" ,",",");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...