.Net C#regex用于解析URL参数

0 c# regex

我需要解析一个字符串,例如 /a/b/c/d=uno/c=duo.html

分为三组,如

  • / A/B/C /
  • d =乌诺/
  • C = duo.html

解析规则是:

  1. 第一组是"d ="之前的所有内容,或者如果"d ="不是字符串的一部分则是整个字符串.
  2. 如果"c ="不是字符串的一部分,则第二组是直到"c ="或第一组后面的字符串的其余部分的所有内容.
  3. 第三组匹配第二组后面的其余字符串.

我的以下正则表达式(?.+ /)?(?d =([^ /] +)/)?(?c =(?.*))的问题是我不知道如何停止组它遇到"d =".

任何帮助将不胜感激.

谢谢.

Mat*_*ton 8

您需要在提供的表单中解析字符串,还是带参数的实际URL?如果是URL,则可以使用System.Web.HttpUtility.ParseQueryString提取包含每个参数及其值的NameValueCollection.

我发现即使在Windows窗体中也很有用(例如在ClickOnce部署的应用程序中解析查询参数).