Regex для сопоставления всех параметров в пакетах приложения - PullRequest
0 голосов
/ 28 мая 2019

У меня есть список параметров во многих пакетах, которые мне нужны, чтобы перехватить их все с помощью регулярных выражений. Каждый параметр начинается с = и закрывается с & Пример: addonName=CatchMe1& Все параметры являются переменными, и я не могу знать, что они будут содержать (String, Integer и т. Д.)

Спасибо.

POST /stringos.txt?addonName=CatchMe1&application=CatchMe2&platform=CatchMe3&platformVersion=CatchMe4&lastVersion=CatchMe5&downloadCount=CatchMe6 HTTP/1.1
Host: Host.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
DNT: 1
Connection: close

addonName=CatchMe1&application=CatchMe2&platform=CatchMe3&platformVersion=CatchMe4&lastVersion=CatchMe5&downloadCount=CatchMe6

Ответы [ 2 ]

0 голосов
/ 30 мая 2019

Спасибо, Мумпиц, плохо проверил.

Пока мне удалось использовать это регулярное выражение для моей задачи.

.*?=(.*?)&.*?=(.*?)&.*?=(.*?)&.*?=(.*?)&.*?=(.*?)&.*?=(.*?) HTTP/1.1

Спасибо.

0 голосов
/ 29 мая 2019

Обычно лучше использовать URL-анализатор для получения этих параметров, но если вы действительно хотите использовать RegEx, вы можете попробовать (?<==)[^&]+

См. Этот рабочий пример: https://regex101.com/r/bzlYZ2/2

Объяснение:
(?<==)[^&?]+ ⇒ полный RegEx
(?<==) ⇒ оглядка назад (без захвата), которая соответствует =
[^&?]+ ⇒ любойсимвол, который не & или ? (один или несколько)

Этот шаблон соответствует значениям ваших параметров.Если вам нужны ключи и значений, вы можете использовать группы захвата : ([^&?]+)=([^&]+), чтобы у вас была клавиша в группе 1 ($1) и значение в группе 2 ($2).

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