Альтернатива положительному взгляду позади, когда есть неизвестное количество пробелов - PullRequest
0 голосов
/ 09 ноября 2019

My replacerRegex равно

("schedulingCancelModal": \{\s*? "title": ")(.+?)(?=")

Подбирается правильное значение, например valueToBePicked: enter image description here

Но как мне получить("schedulingCancelModal": \{\s*? "title": ") не должен быть включен в результат, как положительный взгляд назад?

Мой код Java до сих пор:

Pattern replacerPattern = Pattern.compile(replacerRegex);
Matcher matcher = replacerPattern.matcher(value);

while (matcher.find()) {
    String valueToBePicked = matcher.group();
}

1 Ответ

0 голосов
/ 09 ноября 2019

Вы можете просто выбрать matcher.group(2), который даст вам содержимое второй группы захвата. Например:

    String replacerRegex = "(\"schedulingCancelModal\": \\{\\s*? \"title\": \")(.+?)(?=\")";
    String value = "\"valueToBePicked\": \"schedulingCancelModal\": {\n \"title\": \"Are you sure you want to leave scheduling?\", ... }";
    Pattern replacerPattern = Pattern.compile(replacerRegex);
    Matcher matcher = replacerPattern.matcher(value);

    while (matcher.find()) {
        String valueToBePicked = matcher.group(2);
        System.out.println(valueToBePicked);
    }        

Вывод:

Are you sure you want to leave scheduling?

Демонстрация на rextester

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