zch11230 发表于 2013-3-26 15:46:24

【已解决】正则如何表示一个字符串的"非"

本帖最后由 zch11230 于 2013-3-26 17:08 编辑

现在有一文本文档 包含N多0-9A-F的16进制的数据,我需要取所有为非0000的数据
比如
0000
1234
5555
0000
ABCD
0000
12AB
00EF
A01F
0000观察帮助和查阅资料 没有找到如何表示一个字符串的非 只好列出了该组合的几种可能#include <array.au3>
Local $array=StringRegExp(ClipGet(),'|||',3)
_ArrayDisplay($array)现在我需要匹配的位数更多 用组合的方式太麻烦了 请问该如何简洁的表达。

afan 发表于 2013-3-26 16:34:00

#include <Array.au3>
Local $Str = _
                '0000' & @CRLF & _
                '1234' & @CRLF & _
                '5555' & @CRLF & _
                '0000' & @CRLF & _
                'ABCD' & @CRLF & _
                '0000' & @CRLF & _
                '12AB' & @CRLF & _
                '00EF' & @CRLF & _
                'A01F' & @CRLF & _
                '0000'

Local $Test = StringRegExp($str, '(?:**)+', 3)
_ArrayDisplay($Test, UBound($Test))

zch11230 发表于 2013-3-26 17:08:04

感谢A版帮助 中间**理解了 (?:)+去掉结果也一样 不懂用意何在。

afan 发表于 2013-3-26 17:34:55

回复 3# zch11230


    没注意,忘删了…

yangdai 发表于 2018-10-14 05:52:35

練習
(?m)^([^0].+|0[^0].+|00[^0].|000[^0])
页: [1]
查看完整版本: 【已解决】正则如何表示一个字符串的"非"