VB.NET - 正则表达式来搜索特定格式的标签

Posted

技术标签:

【中文标题】VB.NET - 正则表达式来搜索特定格式的标签【英文标题】:VB.NET - Regular Expression to search a partcular format of Tag 【发布时间】:2015-07-26 21:58:35 【问题描述】:

例如我有像这样的标签 "<ABC_START>""<ABC_END>" 在文本文件中。我只需要读取标签及其内容之间的其余部分我应该忽略的行。如何使用正则表达式检查具有标签的读取行。 谁能帮我形成reg表达式

我的文本文件将如下所示 这是要忽略的评论 我的文本文件看起来像这样 这是要忽略的评论

<abc_start>
ipconfig/all
<abc_end>

这也是注释部分,不予考虑。

我必须阅读文本文件的每一行并对标签之间存在的命令进行进一步处理。现在我需要使用正则表达式验证abc_start 是一个标签并获取字符串直到它到达结束标签。

【问题讨论】:

标签看起来像这样 任何命令 你能提供更多关于标签的信息吗? 我是指开始和结束标签的结构 你开始了什么? 我的文本文件看起来像这样 这是要忽略的注释 ipconfig/all 这也是不考虑的注释部分。我必须阅读文本文件的每一行并 【参考方案1】:

根据您的要求,以下代码应该适合您:

Dim regex As Regex = New Regex("<.*?_start>(.*?)<.*?_end>", RegexOptions.Multiline Or RegexOptions.Singleline Or RegexOptions.IgnoreCase)
Dim txtFileContent As String = "textextextextext<abc_start>ipconfig/all<abc_end>textextextextextex<DEF_start>ipconfig/none<DEF_end>textextextextextex"
Dim Collection = regex.Matches(txtFileContent)
For Each m As Match In Collection
    Dim commPart As String= m.Groups(1).Value
    MsgBox(commPart)
Next

【讨论】:

如果 txtfilecontent 不在单行中怎么办?我的意思是我有一个包含多行的文件? 答案已更新,RegexOptions 添加到适用于多行和单行。 我已经从文本文件中读取所有行并分配给匹配项,但我没有收到任何确切的数学:( . 应该可以,给我看看你的代码和你的文本文件内容。

以上是关于VB.NET - 正则表达式来搜索特定格式的标签的主要内容,如果未能解决你的问题,请参考以下文章

Maven-versions-plugin:用于否定不遵循特定标签格式的版本的正则表达式

VB.NET的正则表达式

搜索正则表达式时忽略子节点

vb.net正则表达式以获取到期账单的日期

使用宏删除 VB.NET 代码中的所有注释和空行的 Visual Studio 正则表达式

正则表达式与文件格式化处理