Как я могу извлечь Регулярное выражение в JMeter для следующего? - PullRequest
2 голосов
/ 06 октября 2019

Как я могу извлечь только KK & JK из следующего ответа в JMeter, используя Regular Expression Extractor?

<es2:ITEM>C2231597H88-KK&JK-M13122</es2:ITEM>

В приведенном выше ответе C2231597H88 всегда 11 символов, а M13122 всегда 6 символов, но количество символовзначение KK & JK в этом примере может измениться, если это поможет.

Если я получу <es2:ITEM>(.+?)<, я получу все это C2231597H88-KK & JK-M13122, но мне нужно захватить только KK & JK.

Ответы [ 2 ]

1 голос
/ 06 октября 2019

Если вы хотите сопоставить только KK&JK, другой вариант - использовать lookarounds и получить только совпадение:

(?<=<es2:ITEM>[A-Z0-9]{11}-)[^-<>]+(?=-[A-Z0-9]{6}</es2:ITEM>)

По частям

  • (?<= Положительный взгляд сзади, утверждают, что то, что находится непосредственно слева, не
    • <es2:ITEM>[A-Z0-9]{11}- Match `и 11 раз AZ или 0-9
  • ) Закрытьlookbehind
  • [^-<>]+ Совпадение 1+ раз с любым символом, кроме - < или >
  • (?= Положительный взгляд вперед, утверждая, что прямо справа -
    • -[A-Z0-9]{6}</es2:ITEM> Соответствует 6 раз AZ или 0-9 и </es2:ITEM>
  • ) Закрыть взгляд

Regex demo

Используя 2 группы захвата, вы можете получить значение из второй группы захвата и использовать обратную ссылку на группу 1 для значения закрытия:

<(es2:ITEM>)[A-Z0-9]{11}-([^-<>]+)-[A-Z0-9]{6}</\1

В Java двойной экранирование обратной ссылки \\1

1 голос
/ 06 октября 2019

Попробуйте следующий шаблон регулярных выражений:

<es2:ITEM>[^-]+-([^-]+)-[^-]+</es2:ITEM>

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

Демо

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