You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB2010环境下:匹配以DD HHMM起止的文本块的正则表达式需求

在VB2010中匹配以DD HHMM开头的文本块的正则方案

我来帮你搞定这个正则匹配需求!首先明确你的核心要求:每个文本块以DD HHMM(两位日期+空格+四位时间)开头,直到下一个DD HHMM出现时结束(最后一个块到文本末尾)。

核心正则表达式

先直接给你能用的正则:

\b\d{2} \d{4}\b(?:(?!\b\d{2} \d{4}\b).)*

正则各部分解释

  • \b\d{2} \d{4}\b:精准匹配起始的日期时间格式
    • \b是单词边界,避免误匹配类似182134这种连在一起的数字片段
    • \d{2}匹配两位日期数字,空格分隔后\d{4}匹配四位时间数字
  • (?:(?!\b\d{2} \d{4}\b).)*:匹配文本块的内容直到下一个起始标识
    • (?:...)是非捕获组,不会额外保存分组结果,提升效率
    • (?!\b\d{2} \d{4}\b)是负向预查,确保当前位置之后没有新的DD HHMM起始标识
    • .匹配任意字符(配合单行模式时会包含换行符),*表示重复匹配直到触发预查条件或文本结束

VB2010中的实际使用示例

下面是完整的代码示例,直接复制到VB2010里就能测试:

Imports System.Text.RegularExpressions

Module MatchTextBlocks
    Sub Main()
        ' 替换成你的实际文本数据
        Dim inputText As String = "18 2131 Z50000 ZZ-AAA PR PR AGM TPS P773QQ 1500 DCA 22FEB 21,77,23,M10,F,26,3100,2 OK 18 2134 Z50000 ZZ-AAA PR QU HMKKDBB .DDVZAZC 182134 ARR FI US1500/AN P773QQ/DA KDCA/AD KMIA/IN 2026/FB 152/LA /LR DT DDL DCAV 182134 M33A - OS KMIA /GNO6541/R200RR 18 2134 Z50000 ZZ-AAA PR PR ARR OPN P773QQ 1500 DCA 22FEB 0757 OK 18 2135 Z50000 ZZ-AAA PR PR ARR M58 ..."
        
        ' 正则模式
        Dim blockPattern As String = "\b\d{2} \d{4}\b(?:(?!\b\d{2} \d{4}\b).)*"
        ' 使用单行模式,让.匹配换行符(如果你的文本块跨多行的话)
        Dim regex As New Regex(blockPattern, RegexOptions.Singleline)
        
        ' 获取所有匹配的文本块
        Dim matches As MatchCollection = regex.Matches(inputText)
        
        ' 遍历输出结果
        For Each match As Match In matches
            Console.WriteLine("=== 匹配到的文本块 ===")
            Console.WriteLine(match.Value)
            Console.WriteLine("---------------------")
        Next
    End Sub
End Module

注意事项

  • 如果你确定文本块不会跨多行,可以去掉RegexOptions.Singleline参数,这样.只会匹配非换行字符
  • 单词边界\b很重要,它能防止匹配到类似1234 56789中的34 5678这种不符合格式的片段

内容的提问来源于stack exchange,提问作者sinDizzy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:46:50