C#使用正则表达式捕获第一场比赛

时间:2018-12-15 03:56:19

标签: c# .net regex

我有一个看起来像这样的输入字符串:

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或非{{1}

如何获取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 :(得分:0)

您可以使用此

(?<=url=).*?(?=%3Futm_source|&amp;utm_source)
  • (?<=url=)积极乐观。匹配url=
  • .*-匹配除换行以外的所有内容。
  • (?=%3Futm_source|&amp;utm_source)-积极向前看。匹配%3Futm_source&amp;utm_source

Demo