我已经成功地在单行中获取信息。我有一个信息列表,例如:
1 1 838028476391 4 23 36 P 1/820-01 *
2 1 838028476490 4 23 36 P 1/820-17 *
3 1 838028474271 4 23 36 P 1/820-21 *
4 1 838028476292 4 23 36 P 1/820-21 *
5 1 838028474263 4 23 36 P 1/820-23 *
6 1 838028473802 4 23 36 P 1/820-21 *
我需要每行的 12 位数字。我试过这段代码:
Dim re As String
Dim re18 As String
re18 = "(\d{12})"
Dim r3 As New RegExp
r3.Pattern = re18
r3.IgnoreCase = True
r3.MultiLine = True
If r3.Test(Body) Then
Dim m3 As MatchCollection
Set m3 = r3.Execute(Body)
If m3.Item(0).SubMatches.Count > 0 Then
Dim number
For j = 1 To m3.Count
Set number = m3.Item(j - 1)
MsgBox ("Number: " + number)
Next
End If
End If
我只得到第一场比赛——即使我调试 makro 并在手表中查看 m3——也只有一场比赛。我还尝试在 \d{12} 之后使用量词 * 或 +
如何让这个 RegEx 工作?
关于RegEx,我还有另一个问题:如果我想在一个特殊单词之后匹配某些东西,我会将这个单词放在模式的开头和后面的数字或任何我想要的东西。如果我执行这个正则表达式 - 我是否得到信息或匹配包括我放在模式开头的单词?!喜欢:“BUS \d{12}”,我只想要数字,但知道 BUS 位于数字之前......