Regex 需要帮助解析此模式的文件RH 09/27/08 11:49 11:49:00.024

Regex 需要帮助解析此模式的文件RH 09/27/08 11:49 11:49:00.024,regex,vb.net,Regex,Vb.net,尝试分析文本文件中以右空格和日期开头的记录。我需要把整条线路都退回。我希望在文件中找到大约6000个。任何帮助都将不胜感激 完整记录的示例: RH 09/27/08 11:49 11:49:00.224 COA292 H393 2664FB753 178-54.82 8.98 C 431 264 13 040 34 24.45-074 58 57.93小时 文本文件的Snipit: ŒRH 09/27/08 11:49 11:49:00.292 JBU521 L536 1555FA320 089

尝试分析文本文件中以右空格和日期开头的记录。我需要把整条线路都退回。我希望在文件中找到大约6000个。任何帮助都将不胜感激

完整记录的示例:

RH 09/27/08 11:49 11:49:00.224 COA292 H393 2664FB753 178-54.82 8.98 C 431 264 13 040 34 24.45-074 58 57.93小时

文本文件的Snipit:

ŒRH 09/27/08 11:49 11:49:00.292 JBU521 L536 1555FA320 089-24.47 6.32 8 275 219 13040 38 56.79-074 19 16.83ŒRH 09/27/08 11:49 11:49:00.280 BTA2094L063 4142FE145 044-35.94 8.82 p 257 135 3040 38 42.65-074 44.99ŒRH 09/27/08 11:49:00.372 1374479479 1374FUNK 360-44.41 16.89#385 241 040 44 33.76-074 48 06.66ŒRH 09/27/08 11:49 11:49:00.456 1274230 230 1274FUNK-01-46.61 24.18#13 031 040 51 07.41-074 53 12.90ŒRH 09/27/08 11:49:00.540 EJA691 S083 3354FC56X 108-26.95 18.12 C 293 28313040 49 51.03-074 26 04.43ŒRH 09/27/08 11:49 11:49:00.576 COA768 H592 1560FB753 029-16.03 11.96 4 242 322 13 040 46 22.69-074 10 09.52 HŒRH 09/27/08 11:49:00.620 N3663B S211 3472FBE10 020-22.72 19.23 161 10 040 51 54.68-074 20 58.46ŒRH 09/27/08 11:49 11:49:00.684 N45002 S522 3525FPA31030-21.66 21.79 A 161 165 8040 54 38.81-074 20 23.63ŒRH 09/27/08 11:49 11:49:00.776 BTA2296L418 26145104-21.82 28.5 C 323 357 13 041 01 08.25-074 22 39.48ŒRH 09/27/08 11:4911:49:00.832 CJC3304L450 2256FDH8D 070-25.09 38.17 P 242 208 3 041 09 46.94-074 29 51.57ŒRH 09/27/08 11:49 11:49:00.836 N721AF S517 1553FPC12 111-15.1 23.29 4 198 273 13 040 57 37.15-074 12 24.13ŒRH

谢谢

^.*RH \d\d/\d\d\/\d\d.*$
将匹配包含
RH
、空格和三个由斜杠分隔的两位数组的行

在VB.NET中,为了迭代字符串中的所有匹配项:

Dim RegexObj As New Regex("^.*RH \d\d/\d\d/\d\d.*$", RegexOptions.Multiline)
Dim MatchResults As Match = RegexObj.Match(SubjectString)
While MatchResults.Success
    ' matched text: MatchResults.Value
    ' match start: MatchResults.Index
    ' match length: MatchResults.Length
    MatchResults = MatchResults.NextMatch()
End While

您发布了一个长字符串,因此可以使用“RH”上的split函数在“RH”上拆分,然后迭代项目,在空格上拆分,并使用IsDate()检查第一个元素,例如假设“strContents”是一个长字符串示例

data=Split(strContents,"RH")
For i=LBound(data) To UBound(data)
  s = Split(data(i)," ")  
  If IsDate(s(1)) Then
    WScript.Echo "RH"&data(i)
  End If 
Next

IsDate()检查有效日期。

哪种编程语言?您的文件中有换行符吗?您的示例的格式就像是一行。日期是否总是采用相同的格式?@Tim:我认为Œ字符可能会填充换行符。我也这么认为,但我希望从OP中听到这一点。是的,日期将始终采用相同的格式。尝试实现这一点,但它不会返回任何值。可能是您上面提到的语言。工作非常完美,尝试过使用早期的strContents.split(“RH”),但它没有破坏您的方法。谢谢