找回密码
 加入
搜索
楼主: heavenm

[AU3基础] 请教个正则问题!排除一段内容向下匹配可以的么

  [复制链接]
 楼主| 发表于 2020-1-3 00:52:32 | 显示全部楼层
floor6ggg 发表于 2020-1-2 22:41
采用排除一段内容向下匹配的解法的话,楼主的2次正则完美匹配。。。。仅针对类似以上6行的数据进行处理---- ...

这样子不行,手机名称不是固定的!长短也不一定的,信息也不一定
目前好像只有2次拆分的方法
List of devices attached
711300385A       unauthorized transport_id:1
0385B       unauthorized transport_id:2
1711300385C       unauthorized transport_id:3
........
711300385Z       unauthorized
这样子就没用了
发表于 2020-1-3 21:51:44 | 显示全部楼层
本帖最后由 floor6ggg 于 2020-1-3 21:59 编辑
\S+\s{3,}.+\v?
试一试。。。。非抬杠。。。特征不少,细看了一下给出的文本,中间是7个空格,上文的{3,}是随便取的,根据数据特征自己进行调试更改,替换成{7},{3,7}等都没问题或者
\S+\s+unau.+\v?
unau是简写,替换成unauthorize,随你喜欢……
以上代码仅针对楼上给出的6行数据,测试有效


本帖子中包含更多资源

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

×
发表于 2020-1-27 16:07:35 | 显示全部楼层
特别的春节,实在是不想玩手机了,翻看旧帖,
看到一个很有想法的解法…………于是模仿gyp2000 在帖子 http://www.autoitx.com/thread-71321-1-1.html   里面的解法
新的尝试,居然成功了………………当然,距离发帖过时太久,仅留个印记吧
发表于 2020-1-27 16:09:04 | 显示全部楼层
### 友情提示:本脚本由 Au3.REHelper 于 2020/01/27 16:02 自动生成,不保证其正确性,请自行测试 ###
Local $sSource = _
                'List of devices attached' & @CRLF & _
                '711300385A       unauthorized transport_id:1' & @CRLF & _
                '0385B       unauthorized transport_id:2' & @CRLF & _
                '1711300385C       unauthorized transport_id:3' & @CRLF & _
                '........' & @CRLF & _
                '711300385Z       unauthorized'
;~MsgBox(0, '源字符串', $sSource)
Local $sSRERe = StringRegExpReplace($sSource, '(?s)(List of devices attached\v+)?(\V+\v)', '\2')
MsgBox(0, '替换结果', $sSRERe)

 楼主| 发表于 2020-1-27 19:15:40 | 显示全部楼层

(?s)(?:List of devices attached\v+)?(\V+\v)
貌似确实你这个是正解,一条正则搞定了
 楼主| 发表于 2020-1-27 19:18:32 | 显示全部楼层
不过貌似还是有缺陷的,如果第一行的List of devices attached不存在就凉凉了!有时候会输出其他的结果!看来还是得多几条判断!
发表于 2020-1-27 19:27:49 | 显示全部楼层
多点判断…………稳妥的做法…………赞!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-16 08:49 , Processed in 0.125409 second(s), 14 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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