本帖最后由 posheng 于 2025-12-13 21:21 编辑
提取Name值和Value值
非常感谢牛B的zghwelcome,正则写得极好~
我只能用StringSplit($ff, 'Name: ', 1)分开后再逐个处理....
原来StringRegExp的参数4有这个功能~开眼了~
#include <Array.au3>
$ff = "Name: AA Handle: 0x0(0) Value: 'VV' Supported" & @CRLF & _
"Name: 查看方式: Handle: 0x0(0) LegacyI" & @CRLF & _
"Name: 小小小g" & @CRLF & "gasdfB图 Handle: 0x0(0) Value: '111' Supported" & @CRLF & _
"Name: 缩图 Handle: 0x0(0) Value: '222' Supported" & @CRLF & _
"Name: P图 Handle: 0x0(0) Value: '4445" & @CRLF & "5555' Supported" & @CRLF & _
"Name: EEEE: Handle: 0x0(0) LegacyI"
Local $aAry = StringRegExp($ff, "(?s)Name:\h*((?:(?!Handle|Name|Value).)+?)\h+(?:(?!Name|Value|Supported).)+((?:Value:\h*'([^']+)')?)", 4)
If Not @error Then
Local $aAryOut[UBound($aAry)][2]
For $i = 0 To UBound($aAry) -1
Local $aAryTemp = $aAry[$i]
$aAryOut[$i][0] = $aAryTemp[1]
If UBound($aAryTemp) = 4 Then $aAryOut[$i][1] = $aAryTemp[3]
Next
_ArrayDisplay($aAryOut)
EndIf
|