正则表达式标识符预期错误

时间:2014-11-28 23:26:31

标签: regex vb.net visual-studio-2010

我的代码出现了标识符预期错误。为什么呢?

代码:

    Dim inStream As StreamReader
    Dim webRequest As WebRequest
    Dim webresponse As WebResponse
    webRequest = webRequest.Create("https://website.com/search?q=" + kicsereles + "&type=page&0&something=" + tokentext.Text)
    webresponse = webRequest.GetResponse()
    inStream = New StreamReader(webresponse.GetResponseStream())
    RichTextBox2.Text = inStream.ReadToEnd()
    For Each m As Match In New Regex("/:\s+"([\w\s.]+)"/g").Matches(RichTextBox2.Text)
        ListBox6.Items.Add(m.Value)
    Next

我的正则表达式代码:/:\s+"([\w\s.]+)"/g

{p在http://regex101.com/看起来不错 但我在VB中遇到错误。

谢谢。

1 个答案:

答案 0 :(得分:0)

这里有几个问题:

  • 您需要转义引号。在VB中,您可以通过加倍引号字符来完成此操作:

    New Regex("/:\s+""([\w\s.]+)""/g")
    

    但这仍然是错误的。

  • 在.NET Regex类中,您没有像PHP那样指定正则表达式选项。你有一个单独的枚举。并且g修饰符不是必需的(它是确定您是想要所有匹配还是仅需要第一个匹配的API用法)。这是正确的电话:

    New Regex(":\s+""([\w\s.]+)""")
    
  • 我也相信你只想提取引号之间的值:

    ListBox6.Items.Add(m.Groups(1).Value)
    
  • 哦,请重命名您的控件,ListBox6是一个非常糟糕的名字。

  • 你应该关闭你的流:

    Using inStream As StreamReader = New StreamReader(webresponse.GetResponseStream())
        RichTextBox2.Text = inStream.ReadToEnd()
    End Using