Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex vb.net正则表达式解析报告中的段落_Regex_String_Vb.net - Fatal编程技术网

Regex vb.net正则表达式解析报告中的段落

Regex vb.net正则表达式解析报告中的段落,regex,string,vb.net,Regex,String,Vb.net,我有一份以纯文本形式提供的报告,同事通常必须手动编辑各种标题。我知道标题的顶行和底行——它们在整个文档中没有区别,但它们之间的不同文本行却有区别。 格式如下所示: BEGIN REPORT FOR CLIENT XXYYZZ RANDOM BODY TEXT RANDOM BODY TEXT RANDOM BODY TEXT RANDOM BODY TEXT RANDOM BODY TEXT FINAL REPORT 我试图使用正则表达式在富文本框中突出显示此文本。如果我使用以下代码,我可以突

我有一份以纯文本形式提供的报告,同事通常必须手动编辑各种标题。我知道标题的顶行和底行——它们在整个文档中没有区别,但它们之间的不同文本行却有区别。 格式如下所示:

BEGIN REPORT FOR CLIENT XXYYZZ
RANDOM BODY TEXT
RANDOM BODY TEXT
RANDOM BODY TEXT
RANDOM BODY TEXT
RANDOM BODY TEXT
FINAL REPORT
我试图使用正则表达式在富文本框中突出显示此文本。如果我使用以下代码,我可以突出显示顶行的每一次出现,而不会出现问题:

Dim mystring As String = "(BEGIN)(.+?)(XXYYZZ)"
Dim regHeader As New Regex(mystring)
Dim regMatch As Match = regHeader.Match(rtbMain.Text)

While regMatch.Success
    rtbMain.Select(regMatch.Index, regMatch.Length)
    rtbMain.SelectionColor = Color.Blue

    regMatch = regMatch.NextMatch()
End While
但是,一旦我试图更改代码以查找整个段落,它将不再突出显示任何内容。以下是我所期待的,但无论出于何种原因,我都不会喜欢它,也不会突出任何内容:

Dim mystring As String = "(BEGIN REPORT FOR CLIENT XXYYZZ)(.+?)(FINAL REPORT)"
Dim regHeader As New Regex(mystring)
Dim regMatch As Match = regHeader.Match(rtbMain.Text)

While regMatch.Success
    rtbMain.Select(regMatch.Index, regMatch.Length)
    rtbMain.SelectionColor = Color.Blue

    regMatch = regMatch.NextMatch()
End While
任何帮助都将不胜感激。

您需要的是,为了让
匹配甚至换行符

试试这个:

Dim mystring As String = "(BEGIN REPORT FOR CLIENT XXYYZZ)(.+?)(FINAL REPORT)"
Dim regHeader As New Regex(mystring, RegexOptions.Singleline)
Dim regMatch As Match = regHeader.Match(rtbMain.Text)

While regMatch.Success
    rtbMain.Select(regMatch.Index, regMatch.Length)
    rtbMain.SelectionColor = Color.Blue

    regMatch = regMatch.NextMatch()
End While
注意
RegexOptions.Singleline