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

.Net C#regex用于解析URL参数,c#,regex,C#,Regex,我需要解析一个字符串,例如 /a/b/c/d=uno/c=duo.html 分成三组,例如 /a/b/c/ d=uno/ c=duo.html 解析规则包括: 第一组是“d=”之前的所有内容,如果“d=”不是字符串的一部分,则是整个字符串 第二组是“c=”之前的所有内容,如果“c=”不是字符串的一部分,则为第一组后面的字符串的其余部分 第三个组与第二个组后面的字符串的其余部分匹配 以下正则表达式(?.+/)?(?d=([^/]+)/)(?c=(?*))的问题是,当组遇到“d=”时,我不知道如

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

分成三组,例如

  • /a/b/c/
  • d=uno/
  • c=duo.html
解析规则包括:

  • 第一组是“d=”之前的所有内容,如果“d=”不是字符串的一部分,则是整个字符串
  • 第二组是“c=”之前的所有内容,如果“c=”不是字符串的一部分,则为第一组后面的字符串的其余部分
  • 第三个组与第二个组后面的字符串的其余部分匹配
  • 以下正则表达式(?.+/)?(?d=([^/]+)/)(?c=(?*))的问题是,当组遇到“d=”时,我不知道如何停止它

    任何帮助都将不胜感激


    谢谢。

    是您需要以提供的形式解析的字符串,还是带有参数的实际URL?如果是URL,则可以使用提取包含每个参数及其值的NameValueCollection


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

    你到底为什么要更改URL解析机制?难道你不能接受标准的解析方法,这样你就不用担心这样的事情了吗?或者这是家庭作业?您可以使用Uri类的查询属性从Uri(请参阅:)和(请参阅:)中提取查询字符串