找回密码
 加入
搜索
查看: 39|回复: 2

[效率算法] 求一句正则表达式,谢谢各位

[复制链接]
发表于 昨天 01:50 | 显示全部楼层 |阅读模式
本帖最后由 765058729 于 2026-6-10 01:51 编辑

Local $Stater = "[0]aa[1]bb[2]cc[3]dd[4]ee[5]tt[6]hk[7]lj[8]jj[9]kj[10]nnn"
        
若已知0,得到aa;已知1,得到bb;已知10得到nnn
发表于 昨天 05:30 | 显示全部楼层
本帖最后由 3131210 于 2026-6-10 05:38 编辑
#include <Array.au3>

Local $Stater  = '[0]aa[1]bb[2]cc[3]dd[4]ee[5]tt[6]hk[7]lj[8]jj[9]kj[10]nnn'


;找0
Local $f0 = StringRegExp($Stater , '\[' & 0 & '\](.+?)(?:\[|$)', 3)
If Not @Error Then ConsoleWrite('结果为: ' & $f0[0] & @CRLF)

;找1
Local $f1 = StringRegExp($Stater , '\[' & 1 & '\](.+?)(?:\[|$)', 3)
If Not @Error Then ConsoleWrite('结果为: ' & $f1[0] & @CRLF)

;找10
Local $f10 = StringRegExp($Stater , '\[' & 10 & '\](.+?)(?:\[|$)', 3)
If Not @Error Then ConsoleWrite('结果为: ' & $f10[0] & @CRLF)

;找全部
Local $fAll = StringRegExp($Stater , '\[\d+\]([a-zA-Z]+)', 3)
If Not @Error Then ConsoleWrite('结果为: ' & _ArrayToString($fAll) & @CRLF)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×

评分

参与人数 1金钱 +30 收起 理由
765058729 + 30 很给力!

查看全部评分

发表于 昨天 13:17 | 显示全部楼层
Func GetValueByKey($sText, $iKey)
    Local $aRet = StringRegExp($sText, "\[" & $iKey & "\](.*?)(?=\[\d+\]|$)", 1)
    If @error Then Return ""
    Return $aRet[0]
EndFunc

Local $Stater = "[0]aa[1]bb[2]cc[3]dd[4]ee[5]tt[6]hk[7]lj[8]jj[9]kj[10]nnn"

ConsoleWrite(GetValueByKey($Stater, 0) & @CRLF)   ; aa
ConsoleWrite(GetValueByKey($Stater, 1) & @CRLF)   ; bb
ConsoleWrite(GetValueByKey($Stater, 10) & @CRLF)  ; nnn
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2026-6-11 01:44 , Processed in 0.098240 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表