找回密码
 加入
搜索
查看: 2056|回复: 4

[效率算法] 【已解决】请帮忙完善一个正则,感谢!

[复制链接]
发表于 2015-12-18 16:57:01 | 显示全部楼层 |阅读模式
本帖最后由 touch_xu 于 2015-12-18 17:58 编辑

待匹配文件本如下:
@17-DEC-15  08:11:04 SN C0002EB316
"17-DEC-15  08:11:14
@17-DEC-15  08:11:14 SN C0002DE116
"17-DEC-15  08:11:22
@17-DEC-15  08:11:22 SN C0002DE016
FAILED
"17-DEC-15  08:11:29
@17-DEC-15  08:11:29 SN C0002DDF16
"17-DEC-15  08:11:36
@17-DEC-15  08:11:36 SN C0002EB616
"17-DEC-15  08:11:44
@17-DEC-15  08:11:44 SN C0002EB416
"17-DEC-15  08:11:51

匹配说明:
@17-DEC-15  08:11:04 SN C0002EB316
"17-DEC-15  08:11:14
@17-DEC-15  08:11:14 SN
如上面颜色标记,匹配两个SN之间有没有FAILED,如果有就,说明第一个SN后面的条码结果为FAILED,否者就是PASSED

本人写的正则如下:
第一步匹配SN:
(?<=SN ).*
第二步匹配结果(此处省略变量赋值):
(?<=SN C00032CB16.*)FAILED
结果前三个结果都会匹配为FAILED了,现求教如何表示我要匹配的结果为两个SN之间?
发表于 2015-12-18 17:50:38 | 显示全部楼层
#include <Array.au3>
Local $sSource = _
                '@17-DEC-15  08:11:04 SN C0002EB316' & @CRLF & _
                '"17-DEC-15  08:11:14' & @CRLF & _
                '@17-DEC-15  08:11:14 SN C0002DE116' & @CRLF & _
                '"17-DEC-15  08:11:22' & @CRLF & _
                '@17-DEC-15  08:11:22 SN C0002DE016' & @CRLF & _
                'FAILED' & @CRLF & _
                '"17-DEC-15  08:11:29' & @CRLF & _
                '@17-DEC-15  08:11:29 SN C0002DDF16' & @CRLF & _
                '"17-DEC-15  08:11:36' & @CRLF & _
                '@17-DEC-15  08:11:36 SN C0002EB616' & @CRLF & _
                '"17-DEC-15  08:11:44' & @CRLF & _
                '@17-DEC-15  08:11:44 SN C0002EB416' & @CRLF & _
                '"17-DEC-15  08:11:51' & @CRLF
;~MsgBox(0, '源字符串', $sSource)
Local $aSRE = StringRegExp($sSource, 'SN\h+(\S+)\s*(FAILED|)\v+"', 3)
_ArrayDisplay($aSRE, UBound($aSRE))
 楼主| 发表于 2015-12-18 17:58:03 | 显示全部楼层
afan 发表于 2015-12-18 17:50



    总是在最迷茫和时候,A版的代码总是以最简练的算法,最高的效率,最快的速度给你最完美的惊喜,膜拜!!!
 楼主| 发表于 2015-12-19 19:57:55 | 显示全部楼层
afan 发表于 2015-12-18 17:50



    今天才发现AU3的正则与 http://deerchao.net/tools/regex_tester/index.htm 正则不兼容,比如\h就不被识别,可能是引擎不同吧!
发表于 2015-12-19 21:26:41 | 显示全部楼层
回复 4# touch_xu


    是的,别说程序语言不同,就算不同的Au3版本也会因正则引擎pcre版本不同而存在匹配差异
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-10 05:43 , Processed in 0.068572 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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