s=
(
;︹︹
; aaa
;1111
;︺︺
fdfdf
12312
;︹︹
; ccc ddd
;333
;︺︺
)
re := ";︹︹([\s\S]+?);︺︺"
For k,v in arr:=RegExMatchAll(s, re)
msgbox % "第 " k " 个匹配的第 1 个子匹配是:" v[1]
;----------------------------------
; RegExMatchAll By FeiYue
;----------------------------------
; 返回值为所有找到的匹配的二级数组,没找到返回0
; 第一级是所有找到的匹配
; 第二级是每个找到的匹配的多个字符串构成的简单数组
; 数组[0]表示整个匹配的字符串
; 数组[N]表示第N个子模式匹配的字符串
;----------------------------------
RegExMatchAll(str, re, pos:=1)
{
arr:=[], len:=StrLen(str)
; 给正则表达式re添加大欧选项O)
re:=RegExMatch(re, "^[\w\s`a]*\)") ? "O" re : "O)" re
While pos:=RegExMatch(str, re, Match, pos)
{
if (len0:=Match.Len(0))<1
{
pos++
if (pos>len)
Break
}
else
{
pos+=len0, arr2:=[]
Loop % Floor(Match.Count())+1
arr2[A_Index-1]:=Match[A_Index-1]
arr.Push(arr2)
}
}
return arr.Length() ? arr : 0
}
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。