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