[正则]Expressive正则表达式工具粗汉化并添加函数生成功能——枫丹白露

想法:AutoGui自带Expressive – Regular Expression Tool

对于新手来说,

第一,英语界面;

第二,测试完了还要自己再写函数,体会一下

FoundPos := RegExMatch(Haystack, NeedleRegEx [, UnquotedOutputVar = "", StartingPosition = 1])

不仅是英文的,而且参数名还特长

修改目标如下

粗略汉化就不说了

扩展步骤

添加控件

; "Text" section
Gui Font, s9 Bold, Segoe UI
Gui Add, Text, hWndhTextHdr x10 y98 w710 h29 +0x200 +E0x200, %A_Space%文本
Gui Add, Text, hWndhMatchCount x612 y104 w100 h20 Right
Gui Add, Edit,hHdaima vTdaima x10 y450 w710 h120 Multi ;函数代码
Gui Font

生成函数代码

    daima:="正则表达 := """ RegEx """`r`nFoundPos := RegExMatch( 文本 , 正则表达 )`r`n"
    daima:=daima "正则表达 := """ RegEx """`r`nFoundPos := RegExMatch( 文本 , 正则表达 , 输出变量 , 开始位置 )"
    
    GuiControl,, Tdaima, %daima%

感觉自己RegExReplace基本不用,所以没加

匹配数量调整

原版使用RegExReplace,这样1234里找\d\d,只有12、34两个结果,而且英文还有1 Match、2 Matches这种麻烦事

我们直接在搜索过程中计算,这样1234里找\d\d,会有12、23、34三个匹配

    StartPos := 1
    Count:=0
    Loop {
        FoundPos := RegExMatch(SciText, RegEx, Match, StartPos)
        If (Match == "") {
            HighlightAll := False
            Break
        }

        StartPos := FoundPos + 1
        Count+=1
        Length := StrPut(SubStr(SciText, FoundPos, StrLen(Match)), "UTF-8") - 1
        FoundPos := StrPut(SubStr(SciText, 1, FoundPos - 1), "UTF-8") - 1
        Highlight(FoundPos, Length)
    } Until (!HighlightAll)

    GuiControl,, %hMatchCount%,%Count% 个匹配
    ;UpdateCounter(SciText, RegEx)

再进一步

+复制函数代码按钮及热键

+正则提示

+正则收集

+扩展函数代码,处理输出变量

原版及改版:

Expressive

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA捐赠
共{{data.count}}人
人已捐赠
其他应用

[LOL]卡牌极速切牌

2017-12-12 21:06:30

应用

[游戏辅助]拳皇97键盘助手精简版

2018-1-11 22:08:12

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
有新私信 私信列表
搜索