正则表达式之化繁为简
应用场景:
今天我想再次升级我的AHK装备,之前我已经分别做出了销售单、购货单、入库单、收款收据等等四五种票据的自动剪切存档功能
看着这四五个脚本,一想到我还要先辨别是什么单子选择运行哪个脚本,我的懒癌一下子又犯了
于是,我想让AHK自动帮我辨别这些单据,自动运行相应的脚本。
我的思路就是抓取一个像素编码进行辨别,我试了好几个地方,找到之后,比对每个像素的不同地方进行编码
当我又在烦恼这个像素的判断该怎么写的时候,感谢路过的Lexicon大神助攻!耍出一招融合招式!
将RegExMatch和IF()融合在了一起,一招干倒今天的怪物!
;【千斤】--------------------------这是我的招式
F1::
MouseMove 741, 406 ;移动鼠标到相应坐标(加这个指令纯属个人癖好,可以省略)
PixelGetColor, a, 741, 406 ;提取像素
RegExMatch(a, "0x(A|B).(A|B).(B).", b) ;在a里面,按照0x(A|B).(A|B).(B).这个规则,提取出b
If(a=b) ;对比a和b,如果是真的就找对单子了,错就……错了呗
MsgBox, 这是你要的单子
Else
MsgBox, 你找错了
Return
;【四两】--------------------------这是Lex神招式
F2::
MouseMove 741, 406
PixelGetColor, a, 741, 406
if a~="0x(A|B).(A|B).(B)." ;----------我发出两招干倒的怪物,被路过的Lex神一招干倒
MsgBox, 牛逼你找得帅! ; ---------【~=】这个符号,就是【RegExMatch】的简写,
Else ;-----两招效果一样……哦不,【~=】这招显得更霸气一点
MsgBox, 牛逼错了也帅!
Return
;~ 实现同样的功能!
FindText()8.5- 屏幕抓字生成字库工具与找字函数——FeiYue
https://www.autoahk.com/archives/28493