Java: Помощь с RegEx - PullRequest
       4

Java: Помощь с RegEx

0 голосов
/ 17 июня 2011


Итак, я хочу заменить все & в следующей строке одним &. Эти & могут быть разделены одним или несколькими space с. У меня есть образец входной строки и фрагмент кода того, что у меня есть.

Входная строка:

a&   &    &&&  & b  


Вот что у меня есть:

String foo = "a&   &    &&& & b".replaceAll("(\\s*&+\\s*&\\s*)", "&");
System.out.println(foo); // prints: "a&&b"
                         // expected: "a&b"

Я не уверен, почему два & заканчиваются в результате.

Любая помощь была бы оценена. Спасибо!

Ответы [ 2 ]

3 голосов
/ 17 июня 2011

зачем делать это сложнее, чем нужно

"(\\s*&)+\\s*"

один или несколько (последовательности &, которым предшествует ноль или более пробелов), за которыми следует ноль или более пробелов

1 голос
/ 17 июня 2011

Попробуйте: String foo = "a& & &&& & b".replaceAll("(\\s*&[\\s&]*)", "&");

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...