замена Java - заменить текст в строке между двумя тегами, которые разделены пробелами и новой строкой - PullRequest
0 голосов
/ 15 мая 2018
String abc = 
"<Message>
    <Details> hello </Details>
</Message>
<Customer>
   <Details> John </Details>
</Customer>
<Bank>
  <Details> BANK1 <Details>
<Bank>"

Теперь я хочу заменить любую строку между "customer / Details" (здесь-John) статическим текстом (например, Peter), то есть заменить John на Peter.Как это сделать в Java, вероятно, с функцией ReplaceAll + регулярное выражение.Я не хочу беспокоить формат строки, которая находится в формате XML после замены.Ожидаемый результат

String abc = 
"<Message>
    <Details> hello </Details>
</Message>
<Customer>
   <Details> Peter</Details>
</Customer>
<Bank>
  <Details> BANK1 <Details>
<Bank>"

1 Ответ

0 голосов
/ 15 мая 2018

Вы забыли пробел внутри распознаваемых токенов:

abc.replaceAll("(<Customer>\\s*<Details>)[^<]+(</Details>\\s*</Customer>)", "$1 Fred $2");

Класс \s распознает все пробелы, включая \n.

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