RegularExpressions不起作用

时间:2012-01-09 05:14:58

标签: regex vb.net

这是我的代码:

    Dim StartString As String = "Private Sub"
    Dim EndString As String = "End Sub"

    Dim SearchString As String = StartString & "(.+)" & EndString

    Dim Data() As String = New Regex(SearchString).Matches(Text).Cast(Of Match).Select(Function(m) m.Groups(1).Value).ToArray

这是Text:

的值
Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    Dim x As Integer

    x = 10
    MessageBox.Show(x / "Simon")

End Sub

Private Function Test()

    Dim x As Integer

    x = 30
    MessageBox.Show(x / "Test")

End Function

结束班

为什么我的数据阵列没有填充任何数据?

1 个答案:

答案 0 :(得分:1)

我怀疑是因为你试图让你的模式匹配多行。

.字符与换行符\n之外的任何内容匹配,并且您要匹配的Private Sub/End Sub正文中包含换行符。

您必须启用正则表达式选项SingleLine(请参阅the msdn for regular expressions):

  

SingleLine
  与输入中有多少行无关   串。相反,会导致。 (期间)元字符匹配任何   字符,,而不是除之外的任何字符,这是默认字符。

因此,请尝试New Regex(SearchString,RegexOptions.SingleLine)而不是New Regex(SearchString)