采用排除一段内容向下匹配的解法的话,楼主的2次正则完美匹配。。。。仅针对类似以上6行的数据进行处理---- ...
这样子不行,手机名称不是固定的!长短也不一定的,信息也不一定
目前好像只有2次拆分的方法
List of devices attached
711300385A unauthorized transport_id:1
0385B unauthorized transport_id:2
1711300385C unauthorized transport_id:3
........
711300385Z unauthorized
这样子就没用了 本帖最后由 floor6ggg 于 2020-1-3 21:59 编辑
\S+\s{3,}.+\v?试一试。。。。非抬杠。。。特征不少,细看了一下给出的文本,中间是7个空格,上文的{3,}是随便取的,根据数据特征自己进行调试更改,替换成{7},{3,7}等都没问题或者
\S+\s+unau.+\v?unau是简写,替换成unauthorize,随你喜欢……
以上代码仅针对楼上给出的6行数据,测试有效
特别的春节,实在是不想玩手机了,翻看旧帖,
看到一个很有想法的解法…………于是模仿gyp2000 在帖子 http://www.autoitx.com/thread-71321-1-1.html 里面的解法
新的尝试,居然成功了………………当然,距离发帖过时太久,仅留个印记吧 ### 友情提示:本脚本由 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)
floor6ggg 发表于 2020-1-27 16:09
(?s)(?:List of devices attached\v+)?(\V+\v)
貌似确实你这个是正解,一条正则搞定了 不过貌似还是有缺陷的,如果第一行的List of devices attached不存在就凉凉了!有时候会输出其他的结果!看来还是得多几条判断! 多点判断…………稳妥的做法…………赞!
页:
1
[2]