(.NET)使用regex搜索用户创建的html块,并插入查询字符串参数

(.NET)使用regex搜索用户创建的html块,并插入查询字符串参数,.net,regex,url,replace,.net,Regex,Url,Replace,我正在开发一个应用程序,用户可以创建一个电子邮件模板,其中可以有任意数量的链接。只有那些专门指向关联门户网站url的链接(此应用的每次安装都不同,但存储在数据库中),我需要插入一个新的查询字符串键值对。 url可能已经有一个查询字符串,或者它可能只是以.com结尾,后面什么都没有 我们不知道前面的html模板,也不知道有多少链接或它们的格式 我对regex有些陌生,但我已经阅读了很多,并使用了regexhero.net测试仪。我提出了一个模式,似乎可以找到我需要的东西,在一个文本块中的一堆URL

我正在开发一个应用程序,用户可以创建一个电子邮件模板,其中可以有任意数量的链接。只有那些专门指向关联门户网站url的链接(此应用的每次安装都不同,但存储在数据库中),我需要插入一个新的查询字符串键值对。
url可能已经有一个查询字符串,或者它可能只是以.com结尾,后面什么都没有

我们不知道前面的html模板,也不知道有多少链接或它们的格式

我对regex有些陌生,但我已经阅读了很多,并使用了regexhero.net测试仪。我提出了一个模式,似乎可以找到我需要的东西,在一个文本块中的一堆URL上测试它,这些URL都有不同的场景(大写、空格、qs、无qs)

Dim Reg As New Regex(“,RegexOptions.IgnoreCase)
我被困在如何做替换,因为它需要有条件。 在html的大块中,仅当找到的url包含sSiteUrl(也没有弄清楚如何将变量中的精确文本输入到模式中)时才插入查询字符串,如果没有查询字符串,则插入?i=123,如果有,则插入&i=123

-----[编辑]-------------- 我试图发布一个很好的示例,但它是在html代码中,它会不断呈现,而不是以html代码的形式显示。我确实缩进了,但那一定不是诀窍

我将有一个html块,由登录用户创建并存储在数据库中。我将把那个块调用为页面上的变量。然后我需要找到所有的 例如href=”http://www.portal.com“需要成为href=”http://www.portal.com?i=123"

href=”http://www.portal.com/somefolder/landing.aspx?s=code
需要成为 href=”http://www.portal.com/somefolder/landing.aspx?s=code&i=123


(实际上不会是123,但如果我能让它插入,那么我可能就能计算出动态位)

请提供以下内容:输入和预期输出请提供以下内容:输入和预期输出
    Dim Reg As New Regex("<a.*?href\s*=\s*[""'](?<url>.*?)(?<QS>\?.*?)?[""'].*?>.*?</a>", RegexOptions.IgnoreCase)