本帖最后由 jian82372387 于 2022-4-17 13:16 编辑
已使用百度OCR提取粤康码截图里面的信息,得到得内容如下红色字体内容,如何通过正则表达式从下面内容分别提取姓名,检测时间,检测结果三个部分放到excel表格中,谢谢。(所需结果为:姓名张三,检测时间:2022-03-10 00:00,检测结果:阴性)
内容:晚上8:52,R令8☐¥,〈核酸检测记录,●●●,核酸检测记录,O刷新,检测完成,检测中,张三,采样时间,2022-03-0920:54,检测时间,2022-03-1000:00,检测机构,广州康赛医学检验实验室,数据来源,广东省卫生健康委员会,检测结果,阴性,张三,采样时间,2022-01-1715:22,检测时间,2022-01-1722:00,检测机构,广州康赛医学检验实验室,数据来源,广东省卫生健康委员会,检测结果,阴性,外省核酸查不到?点这里>>
拿着 .xlsx 文件 问正则,
代码一句没有,
所以不像是卡在正则表达式,
------------------------------------------------
晚上8:52,R令8☐¥,〈核酸检测记录,●●●,核酸检测记录,O刷新,检测完成,检测中,张三,采样时间,2022-03-0920:54,检测时间,2022-03-1000:00,检测机构,广州康赛医学检验实验室,数据来源,广东省卫生健康委员会,检测结果,阴性,张三,采样时间,2022-01-1715:22,检测时间,2022-01-1722:00,检测机构,广州康赛医学检验实验室,数据来源,广东省卫生健康委员会,检测结果,阴性,外省核酸查不到?点这里>>
(你举例 不严谨 . 反白也是张三)
=======================================
Sub cs()
Dim a$, regex As Object, matc, m, n&, i&, arr(1 To 10000, 1 To 3), temp$
Set regex = CreateObject("VBScript.RegExp")
a$ = "晚上8:52,R令8?¥,〈核酸检测记录,●●●,核酸检测记录,O刷新,检测完成,检测中,张三,采样时间,2022-03-0920:54,检测时间,2022-03-1000:00,检测机构,广州康赛医学检验实验室,数据来源,广东省卫生健康委员会,检测结果,阴性,张三,采样时间,2022-01-1715:22,检测时间,2022-01-1722:00,检测机构,广州康赛医学检验实验室,数据来源,广东省卫生健康委员会,检测结果,阴性,外省核酸查不到?点这里>>"
With regex
.Global = True
.Pattern = "([^\,]*?\,采样时间)|(检测时间\,.*?\,)|(检测结果\,[^\,]*?\,)"
Set matc = .Execute(a$)
For Each m In matc
temp = m.Value
If Right(temp, 4) = "采样时间" Then
i& = i& + 1
n& = 1
arr(i&, n&) = Split(temp, ",")(0)
ElseIf Left(temp, 4) = "检测时间" Then
n& = 2
arr(i&, n&) = Left(Split(temp, ",")(1), 10) & " " & Right(Split(temp, ",")(1), 5)
ElseIf Left(m.Value, 4) = "检测结果" Then
n& = 3
arr(i&, n&) = Split(temp, ",")(1)
End If
Next m
For n& = 1 To i&
Debug.Print arr(n&, 1) & " | " & arr(n&, 2) & " | " & arr(n&, 3)
Next n&
End With
End Sub
|