Jmeter: удаление пробелов с помощью RegEx

введите здесь описание изображениявведите здесь описание изображенияJmeter :

У меня есть JSON, из которого я должен получить значение «ci».

Я использую следующий RegEx: ci:\s*(.*?)\" и получаю следующий результат Тестер RegEx: Количество совпадений: 1 Match1[0]=ci: 434547" Match1=434547

Проблема заключается в том, что Match1[0] содержит пробелы, из-за которых при выполнении нагрузочного теста он говорит: Ошибка сервера - не удалось преобразовать JSON в объект

Нужна помощь в исправлении этого RegEx.


person Vaibhav Jain    schedule 14.06.2013    source источник
comment
ИМО RegEx в порядке. Match[1][0], очевидно, дает текст, который соответствует всему регулярному выражению (имя свойства + значение), а Match[1][1] содержит первую группу (часть в скобках), которая является значением, которое вы искали. Не могли бы вы объяснить, почему/где вы используете Match[1][0]? Или, может быть, еще какой-то код, в котором вы это используете?   -  person marsze    schedule 14.06.2013
comment
Если в качестве значения используется Match[1][1], то RegEx подойдет. Все еще получаю: Статус HTTP 500 - Ошибка обработки запроса; вложенным исключением является com.xxx.common.xxxException: Ошибка сервера — не удалось преобразовать JSON в Object‹/h1›‹HR size=1 noshade=noshade›‹p›‹b›type‹/b›Отчет об исключении‹/p› ‹p›‹b›сообщение‹/b› ‹u›Ошибка обработки запроса; вложенным исключением является com.xxx.common.xxxException: Ошибка сервера — не удалось преобразовать JSON в объект‹/u›‹/p›‹p›‹b›описание‹/b› ‹u›Сервер обнаружил внутреннюю ошибку, которая предотвратила это от выполнения этого запроса.   -  person Vaibhav Jain    schedule 14.06.2013
comment
Пожалуйста, скажите, что вы делаете с RegEx/Matches/Values! В противном случае я не могу вам помочь.   -  person marsze    schedule 14.06.2013
comment
добавлены 2 файла png для справки. Необходимо получить значение CID с помощью экстрактора регулярных выражений и передать JSON. CID меняется на каждой итерации.   -  person Vaibhav Jain    schedule 14.06.2013
comment
Разве вы не можете просто установить Match No.: 2? Разве это не даст вам просто ценность? (Кроме того, что означает Template?)   -  person marsze    schedule 14.06.2013
comment
Ошибка при настройке номера соответствия: 2: описание‹/b› ‹u›Запрос, отправленный клиентом, был синтаксически неправильным.‹/u›‹/p›‹HR size=1 noshade=noshade›‹h3›Apache Tomcat/ 7.0.34‹/h3›‹/тело›‹/html›   -  person Vaibhav Jain    schedule 14.06.2013
comment
Каково исходное значение, к которому вы применяете RegEx?   -  person marsze    schedule 14.06.2013
comment
POST-данные. { : status:S, : msg:Оценка начата - ci: 434613 } ci: пробел, а затем номер. в этом проблема   -  person Vaibhav Jain    schedule 14.06.2013
comment
Какой результат вы хотите? Это 434547 или ci:434613 или "ci":"434613" или ...?   -  person marsze    schedule 14.06.2013
comment
Я ищу только 434547.   -  person Vaibhav Jain    schedule 17.06.2013


Ответы (1)


В принципе, ваш RegEx в порядке. Я бы тоже так искал, первая группа (Match[1]) даст вам 434613, что является значением, которое вы ищете. Поскольку я не знаю, какое программное обеспечение вы используете, я понятия не имею, почему использование только этого совпадения не работает.

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

\d+

Это даст вам числовое значение длиной не менее 1 цифры. Если в строке есть другие числовые значения, но они имеют разную длину, попробуйте следующее:

\d{m,n}   --> between m and n digits long
\d{n,}    --> at least n digits long
\d{0,n}   --> not more than n digits long

Это не так безопасно/надежно, как оригинальный RegEx (поскольку он предполагает некоторые определенные условия), но может сработать в вашем случае, потому что вам не нужно искать группы, а просто использовать весь совпавший текст. Скажите, помогло ли это!

person marsze    schedule 17.06.2013
comment
Спасибо за информацию Марсе. \d+ или ci:\s*([1-9]+.*?) оба дают мне требуемое значение, т. е. 434613, но получают некоторую ошибку, связанную с сервером — ошибка сервера — не удалось преобразовать JSON в объект. Не уверен, что случилось. Раньше работало отлично. Проведение внутренней проверки через техническую команду. Будет обновляться с выводами. - person Vaibhav Jain; 17.06.2013
comment
Хорошо, похоже, это все-таки не RegEx. С нетерпением ждем ваших выводов! - person marsze; 17.06.2013
comment
Извините, что поздно вернулся. Но это было исправлено давно. Были некоторые проблемы с пространством, которые создавали проблемы. - person Vaibhav Jain; 07.08.2013