Как исключить начальную строку в регулярном выражении - PullRequest
0 голосов
/ 23 февраля 2019

У меня есть строка, содержащая следующую переменную "nonce = 1ff7de7518b9a52080489ecd7629796d &", как получить значение между равным и "&" в регулярном выражении, я пробовал nonce = (. *?). +? (? = &) конечная часть исключила "&", но я не смог исключить "nonce ="

Примечание: попытка сопоставить значение между "=" и "&" не будет работать, так как есть много "=" и "& "символы, которые приведут к более чем одному совпадению, уникальная строка" nonce "

вот пример https://regexr.com/48vmd

Ответы [ 2 ]

0 голосов
/ 25 февраля 2019

Если вы ищете регулярное выражение, оно будет просто: nonce=(\w+)&

Демонстрация (предполагает режим RegExp Tester Дерево результатов просмотра слушатель)

enter image description here

Еще более простой путь был бы для Boundary Extractor , который в основном извлекает все между заданными «левыми» и «правыми» границами:

enter image description here

0 голосов
/ 23 февраля 2019

Вы можете использовать nonce=([^&]+) для сопоставления и захвата вашей предполагаемой строки из group1

Здесь nonce= будет совпадать буквально, а затем ([^&]+) будет соответствовать всему тексту до & и захватывать в group1.

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

В случае, если ваш вариант регулярного выражения поддерживает \K оператор сброса соответствия, вы можете использовать это регулярное выражение nonce=\K[^&]+, чтобы получить нужный тексткак полное совпадение без необходимости захвата текста группы.

Демонстрация без захвата группы

Если вы используете Java, вы можете использовать эторегулярное выражение, которое использует взгляд назад, а Java поддерживает взгляд назад.

(?<=nonce=)[^&]+

Демонстрация с использованием взгляда позади

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