如何使用Regex.Match选择变化的令牌

时间:2015-04-04 02:08:15

标签: regex vb.net

所以我有一个令牌,它看起来像asdkl3njkln1mlnmlaskjenr&email=example@gmail.com&asd345d&password=example&asd986asn

&email=example@gmail.com&&password=example&之前/之后的字符串会在每次加载页面时不断变化。

我只需要用户将其用户名/密码输入到文本框中以检查订单状态/等。我如何从令牌中获取电子邮件地址和密码?

我在VB.NET中尝试的是:

Dim token As String = Regex.Match(htmlPage, "(?\<email=\)+user+(?=\\&\)").Groups(0).Value

但这似乎不起作用。

htmlpage是具有订单状态的网站的登录页面,该订单状态是为Regex在令牌中插入这些字符串而下载的。

1 个答案:

答案 0 :(得分:0)

虽然最好的答案是使用查询解析器,但我想解释当前正则表达式的问题。重点是你过度逃避角色并使用了一个畸形的后视镜。

正确的正则表达式如下所示:(?<=email=)[^&]+(?=&)

以下是具有固定工作正则表达式的sample program

Imports System.Text.RegularExpressions
Module VBModule

Sub Main()
    Dim htmlPage As String = "asdkl3njkln1mlnmlaskjenr&email=example@gmail.com&asd345d&password=example&asd986asn"
    Dim token As String = Regex.Match(htmlPage, "(?<=email=)[^&]+(?=&)").Value
    Console.WriteLine(token)
End Sub
End Module

输出:example@gmail.com