找回密码  加入

AUTOIT CN

搜索
楼主: afan

[原创] Au3.REHelper_正则助手[160128更新1.5.1]

[复制链接]
发表于 2010-11-3 12:44:30 | 显示全部楼层
回复 59# afan


    在帮助里 我也没见到有?<= 这样的介绍 不明白它的含义是什么
 楼主| 发表于 2010-11-3 12:47:06 | 显示全部楼层
回复 61# shenrenba


    不是帮助,是打开例子文件后点击“笔记”。。。
发表于 2010-11-3 12:47:31 | 显示全部楼层
回复 58# 蜘蛛抱蛋


    明白了 找到介绍了 谢谢
发表于 2010-11-3 13:53:17 | 显示全部楼层
本帖最后由 Duvet 于 2010-11-3 16:10 编辑

既然用到ini,為什麼不多加個紀錄最後開啟(儲存)文件的位置,方便下次文件的開啟。
菜單→幫助→關於...,沒禁用主窗口,當我再開一個(或多個)關於窗口時,之前已開啟的關於窗口變成無法關閉。
有文本,沒正則,還是可進行匹配。

回覆已看到了^^,又發現"更多設置"窗口與"關於"窗口一樣的問題。
另外,關於第一個問題,不好意思是我表達不完整,我是指FileOpenDialog的初始位置,FileSaveDialog可以的說,忘記了?

评分

1

查看全部评分

发表于 2010-11-3 13:55:30 | 显示全部楼层
帮楼主测试下啊
发表于 2010-11-3 13:59:47 | 显示全部楼层
哎哟我去 ,正好要用 搜藏了
 楼主| 发表于 2010-11-3 14:07:00 | 显示全部楼层
本帖最后由 afan 于 2010-11-3 14:42 编辑
既然用到ini,為什麼不多加個紀錄最後開啟(儲存)文件的位置,方便下次文件的開啟。
菜單→幫助→關於..., ...
Duvet 发表于 2010-11-3 13:53


感谢反馈~!

A1:有个打开历史应该算包含了此功能,最后开启的在最上面。最多保存15条记录,并且不会重复、路径是有效的记录。
A2:没禁用主窗口,因为考虑到不影响同时作业。能重复开启关于窗口确属Bug,虽然这样的操作很少见~ ^ ^
A3:表达式为空是可以匹配的,函数本身即是如此。相当于捕获"字符间隔位置",数组的大小即为字符串的字符总数+1。

你编辑那我也只能编辑(差点漏看),O(∩_∩)O~
A4:能重复开启设置窗口确属Bug,虽然这样的操作同样很少见~ ^ ^ 哈
A1+:这个建议不错,下次会加上。对于我来说代码“太长”,改了这里忘了那里…
发表于 2010-11-3 14:28:25 | 显示全部楼层
A版又出新精品了,支持一下
发表于 2010-11-3 14:30:40 | 显示全部楼层
哈哈,初步测试了一下,很优秀啊。
联想功能很强大。
发表于 2010-11-3 16:12:38 | 显示全部楼层
本帖最后由 Duvet 于 2010-11-3 17:37 编辑

開新,免的漏看

感謝回覆^^,可以再請回復一下變量支援的類型嗎?
試了以下都不行,只支持純文字?
$b = 1 ; b is for ...
$c = $b+1
...等
(\$w+)\h*=([^\r\n]+),←猜了一下,樓主是這樣操作的嗎?
說明文件"变量代入例子"裡沒提到,請不要在變量前“Local、Dim”等(少了"後")
不好意思,一再打擾樓主,問了一推

最後是宏,我稍微補充說明一下樓主沒提到的,被這問題搞了一下,突然開竅想出我哪裡錯了
$a = @ScriptDir
關於上面的$a照理說應該是可以常匹配的,但會返回"正則表達式錯誤",(?##@ScriptDir)也是一樣的情況
這是因為宏可能存在一些非法文字的問題,例:\\\.\*\?\[\]...等(在正則表達式中作為關鍵字的字符)
提醒一下使用的人,先不要使用含有非法文字的宏

在生成後的au3,多加上這個步驟即可(或是在釋出原碼後,直接在原碼裡改)
StringRegExpReplace(@ScriptDir, "([/\\\[\].*?(){}""|])", "\\$1");雖然我不清楚所有的宏中是否含有*?"[]{}字符,以防萬一全加上去
 楼主| 发表于 2010-11-3 16:34:12 | 显示全部楼层
本帖最后由 afan 于 2010-11-3 16:46 编辑

回复 70# Duvet


    这正是我还没来得急说明的东西~
当前不支持变量中包含其它变量或宏的组合,如果需要可以在表达式中组合,毕竟表达式中可以达到的效果。后面的 ; 注释是可以排除的,那是后续深化的修改版本了~

关于后面的宏的问题我这是成功的,不知你是如何测试的? 最好直接上传项目文档,一目了然~ O(∩_∩)O谢谢

BTW,您的测试是很专业的,我非常希望能被这样“打扰”,呵呵~
发表于 2010-11-3 17:16:58 | 显示全部楼层
本帖最后由 Duvet 于 2010-11-3 17:42 编辑

正則表達式:
(?##@ScriptDir)
文本內容:
V:\Au3.REGHelper.exe   ;主程式位置
V:\Project\Test.a3e    ;a3e文件位置

生成後的au3代碼:
MsgBox(0, @ScriptDir, $Str)                         ;這行我改了一下,標題顯示V:\Project
Local $Test = StringRegExp($str, @ScriptDir, 3, 1)  ;主要是這一行問題

改為
Local $Test = StringRegExp($str, StringRegExpReplace(@ScriptDir, "([/\\\[\].*?(){}""|])", "\\$1"), 3, 1)

;剛發現我在70樓留下的正則寫錯了XP,偷該回來
;期待源碼,畢竟其他語言的作業系統下,一些文字會變成???
 楼主| 发表于 2010-11-3 17:35:19 | 显示全部楼层
本帖最后由 afan 于 2010-11-3 18:11 编辑
正則表達式:
(?##@ScriptDir)
文本內容:
V:\Au3.REGHelper.exe   ;主程式位置
V:\Project\Test.a3e   ...
Duvet 发表于 2010-11-3 17:16



    我懂意思了。。。 但这应该属于正则应用方面的问题,而非代入变量的问题。脚本的输出也很正确。和你直接在脚本中 StringRegExp($str, @ScriptDir, 3, 1) 是一样的结果。对于这类情况,我们肯定要分步骤完成,先对 @ScriptDir 中的字符转义,然后再匹配,不过这貌似不应该由本工具完成。而应该由用户自己完成代码补充,不然的话,全部自动完成全部代码解析会让用户养成依赖性,也就脱离了学习的主旨了~

补充:我知道少了个\ ,不过不影响本问题的讨论,呵呵~
对于其它语言的操作系统,我没有接触过,不知道如何兼容它,哪天我弄个例子再请您赐教~ :)
发表于 2010-11-3 17:55:50 | 显示全部楼层

本帖子中包含更多资源

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

x
 楼主| 发表于 2010-11-3 17:57:33 | 显示全部楼层
rikthhpgf2005 发表于 2010-11-3 17:55



    无视它还是删除本软件可自由选择~
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2019-1-23 22:39 , Processed in 0.095442 second(s), 17 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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