C # Захват первого матча с регулярным выражением - PullRequest
0 голосов
/ 15 декабря 2018

У меня есть строка ввода, которая выглядит следующим образом:

url=https%3A%2F%2Fdomain.com%2Fsale-deal%3Futm_source%3Dinsider-primary-action%3Dinsider-primary-action&utm_source=FB

или

url=https%3A%2F%2Fdomain.com%2Fsale&utm_source=FB&sub_id1=M12

строка иногда имеет или не %3Futm_source

какчтобы получить ссылку между url = и %3Futm_source% или &utm_source

Regex reg = new Regex(@"url=(https%3A%2F%2Fdomain.com[a-zA-Z0-9-_/%\.]+)%3Futm_source|&utm_source");
                    Match result = reg.Match(inPut);
Console.WriteLine(result.Groups[1].Value));

, он всегда получает от url= до &utm_source

1 Ответ

0 голосов
/ 15 декабря 2018

Вы можете использовать это

(?<=url=).*?(?=%3Futm_source|&amp;utm_source)
  • (?<=url=) Положительный взгляд позади.соответствует url=.
  • .* - соответствует всему, кроме новой строки.
  • (?=%3Futm_source|&amp;utm_source) - позитивный взгляд вперед.Совпадения %3Futm_source или &amp;utm_source

Демо

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