求个正则提取信息 - 已解决
本帖最后由 rally 于 2021-5-11 22:08 编辑Disk ( 1:) 0 11.841 BillionPASS 0 No errorstxt文本 ,想提取:【Disk ( 1:) ,0 ,11.841 Billion,PASS,0,No errors],求个正则,谢谢
范本太少,只能猜~
Highlight code by AuREHelper
(?mi)^(Disk.+\))\h+(\d+)\h+([\d.](?#)+\h+\w+)\h+(\w+)\h+(\d+)\h+(\V+)
afan 发表于 2021-5-11 21:41
范本太少,只能猜~
看到这些个符号很懵,下载了超版的正则参考看的满头大汗也没弄出来https://www.autoitx.com/forum.php?mod=viewthread&tid=51810&highlight=%D5%FD%D4%F2 。afan大大帮指点一下。这串“Disk ( 1:) 0 11.841 BillionPASS 0 No errors” ,如何转换为这个一维数组?【Disk ( 1:) ,0 ,11.841 Billion,PASS,0,No errors] rally 发表于 2021-5-11 21:48
看到这些个符号很懵,下载了超版的正则参考看的满头大汗也没弄出来https://www.autoitx.com/forum.php? ...
上面的表达式结果不就是一维数组? 本帖最后由 rally 于 2021-5-11 21:59 编辑
afan 发表于 2021-5-11 21:53
上面的表达式结果不就是一维数组?
(?mi)^(Disk.+\))\h+(\d+)\h+([\d.](?#)+\h+\w+)\h+(\w+)\h+(\d+)\h+(\V+),这个正则是配哪个函数运行的啊?用StringRegExpReplace() 没弄出来 rally 发表于 2021-5-11 21:57
(?mi)^(Disk.+\))\h+(\d+)\h+([\d.](?#)+\h+\w+)\h+(\w+)\h+(\d+)\h+(\V+),这个正则是配哪个函数运行的 ...
晕
#include <Array.au3>
Local $sSource = 'Disk ( 1:) 0 11.841 BillionPASS 0 No errors'
;~ MsgBox(0, '源字符串', $sSource)
Local $aSRE = StringRegExp($sSource, '(?mi)^(Disk.+\))\h+(\d+)\h+([\d.]+\h+\w+)\h+(\w+)\h+(\d+)\h+(\V+)', 3)
If Not @Error Then MsgBox(0, '匹配数量: ' & UBound($aSRE), '其中元素为: ' & $aSRE)
_ArrayDisplay($aSRE, UBound($aSRE)) afan 发表于 2021-5-11 21:59
晕
afan 大大,太感谢了,怎么没开窍。。。 rally 发表于 2021-5-11 22:08
afan 大大,太感谢了,怎么没开窍。。。
afan大大帮看一下,Local $sSource = ' Disk ( 1:) 111223 11.841 BillionPASS 344555 No errors' ,Disk(1:)前面还有空格,这个正则该怎么改啊?
#include <Array.au3>
Local $sSource = ' Disk ( 1:) 111223 11.841 BillionPASS 344555 No errors'
MsgBox(0, '源字符串', $sSource)
Local $aSRE = StringRegExp($sSource, '(?mi)^(Disk.+\))\h+(\d+)\h+([\d.]+\h+\w+)\h+(\w+)\h+(\d+)\h+(\V+)', 3)
If Not @Error Then MsgBox(0, '匹配数量: ' & UBound($aSRE), '其中元素为: ' & $aSRE)
_ArrayDisplay($aSRE, UBound($aSRE)) Local $aSRE = StringRegExp($sSource, '(?mi)^\h*(Disk.+\))\h+(\d+)\h+([\d.]+\h+\w+)\h+(\w+)\h+(\d+)\h+(\V+)', 3) 非常感谢afan大大,也要努力学习,尽量少伸手,多思考{:1_195:}
页:
[1]