1,502
社区成员
发帖
与我相关
我的任务
分享
Private Sub TestReg()
Dim strData As String
Dim reg As Object
Dim matchs As Object, i As Integer, j As Integer
strData = "设备名称 设备 ----- 这行是为了解释加上去的,实际上不存在 这儿默认暂时值为3台" & vbCrLf & _
"fc2f9754 device " & vbCrLf & _
"d51ad9ff device" & vbCrLf & _
"d51ad9fd device"
Set reg = CreateObject("vbscript.regExp")
reg.Global = True
reg.IgnoreCase = True
reg.MultiLine = True
reg.Pattern = "[a-z\d]{8}"
Set matchs = reg.Execute(strData)
For i = 0 To matchs.Count - 1
Debug.Print i + 1 & "." & matchs(i)
For j = 0 To matchs(i).SubMatches.Count - 1
Debug.Print "(" & j + 1 & ")." & matchs(i).SubMatches(j) & " ";
Next
If matchs(i).SubMatches.Count > 0 Then Debug.Print
Next
End Sub
'此代码由“正则测试工具 v1.1.43”自动生成,请直接调用TestReg过程
Private Sub TestReg()
Dim strData As String
Dim reg As Object
Dim matchs As Object, i As Integer, j As Integer
strData = "设备名称 设备 ----- 这行是为了解释加上去的,实际上不存在 这儿默认暂时值为3台" & vbCrLf & _
"fc2f9754 device " & vbCrLf & _
"d51ad9ff device" & vbCrLf & _
"d51ad9fd device"
Set reg = CreateObject("vbscript.regExp")
reg.Global = True
reg.IgnoreCase = True
reg.MultiLine = True
reg.Pattern = "[a-z\d]{8}"
Set matchs = reg.Execute(strData)
For i = 0 To matchs.Count - 1
Debug.Print i + 1 & "." & matchs(i)
For j = 0 To matchs(i).SubMatches.Count - 1
Debug.Print "(" & j + 1 & ")." & matchs(i).SubMatches(j) & " ";
Next
If matchs(i).SubMatches.Count > 0 Then Debug.Print
Next
End Sub
Option Explicit
Private Sub Form_Load()
Dim 源内容 As String
源内容 = "List of devices attached" & vbCrLf
源内容 = 源内容 & vbCrLf & "设备名称 设备 ----- 这行是为了解释加上去的,实际上不存在 这儿默认暂时值为3台"
源内容 = 源内容 & vbCrLf & "fc2f9754 device"
源内容 = 源内容 & vbCrLf & "d51ad9ff device"
源内容 = 源内容 & vbCrLf & "d51ad9fd device"
'''以上是模拟你获得的内容
'''以下是你要的代码.仅供参考
Dim 正则对象, 查找后的结果, i As Long, 每个结果, 你要的结果 As String
Set 正则对象 = CreateObject("vbscript.regexp") '创建正则对象
正则对象.Global = True
正则对象.IgnoreCase = True
正则对象.MultiLine = True
正则对象.Pattern = "([a-z0-9]+) +device(?!s)" '指定正则表达式
Set 查找后的结果 = 正则对象.Execute(源内容) '执行正则查找,返回所有匹配结果的集合,若未找到,则为空
If 查找后的结果.Count = 0 Then
Debug.Print "源内容,1项都匹配不了指定的规则"
Else
For Each 每个结果 In 查找后的结果
你要的结果 = 你要的结果 & 每个结果.submatches(0) & "|"
Next
End If
Debug.Print Mid(你要的结果, 1, Len(你要的结果) - 1)
End Sub