从另一个值中提取值(可能使用RegEx)

时间:2011-08-12 18:57:11

标签: c# regex

我正在寻找的是一种从href属性中提取URL的方法。我关心所有参数除了sessionToken参数。

所以这......

<A class=ContentURL href="javascript:void(window.open('../content/ModuleList.aspx?PageID=module&amp;sessionToken=[sessionToken]','report','scrollbars=yes,resizable=yes,width=640,height=500'))">Manage Applications</A>

应该给我这个......

../content/ModuleList.aspx?PageID=module

这就是......

<A class=ContentURL href="javascript:void(window.open('../content/ModuleList.aspx?PageID=module&amp;sessionToken=[sessionToken]&amp;Token=DateTime','report','scrollbars=yes,resizable=yes,width=640,height=500'))">Manage Applications</A>

应该给我这个......

../content/ModuleList.aspx?PageID=module&amp;Token=DateTime

我必须想象有一种方法可以使用RegEx来做到这一点,我希望有人可以告诉我如何。

1 个答案:

答案 0 :(得分:1)

如果您的所有链接都具有您指定的相同格式,则提取网址的模式很简单:

href="javascript:void\(window\.open\('(.+?)'.*?"

第一组将抓取网址:(.+?)

现在提取了网址,您可以随意执行任何操作。如果要在不破坏GET字符串的情况下删除sessionToken参数(通过意外删除?&字符),则应将(\??)sessionToken=[^&]*&?替换为第一个捕获组(如果是sessionToken,则为?是第一个参数,如果不是,则为空字符串。如果sessionToken是最后一个参数,您可能还想删除尾随&,但这不一定。