gpt4 book ai didi

regex - Grep:仅查找匹配未知字符一次的行

转载 作者:行者123 更新时间:2023-12-01 10:01:56 25 4
gpt4 key购买 nike

我有一个包含十六进制行的列表。例如:

0b 5a 3f 5a 7d d0 5d e6 2b c4 7e 7d c2 c0 e6 9a 
84 bd aa 74 f3 85 da 9d ac b6 e0 b6 62 0f b5 d5
c0 b0 f5 60 02 8b 1c a4 41 7c 53 f2 85 20 a0 d1
...

我试图用 grep 查找所有行,其中有一个字符在该行中只出现一次。

例如:第三行只有一次'd'。

我试过了,但是没用:

egrep '^.*([a-f0-9])[^\1]*$'

最佳答案

这可以用正则表达式来完成,但它必须是冗长的。
有点不能一概而论。

 # ^(?:[^a]*a[^a]*|[^b]*b[^b]*|[^c]*c[^c]*|[^d]*d[^d]*|[^e]*e[^e]*|[^f]*f[^f]*|[^0]*0[^0]*|[^1]*1[^1]*|[^2]*2[^2]*|[^3]*3[^3]*|[^4]*4[^4]*|[^5]*5[^5]*|[^6]*6[^6]*|[^7]*7[^7]*|[^8]*8[^8]*|[^9]*9[^9]*)$

^
(?:
[^a]* a [^a]*
| [^b]* b [^b]*
| [^c]* c [^c]*
| [^d]* d [^d]*
| [^e]* e [^e]*
| [^f]* f [^f]*

| [^0]* 0 [^0]*
| [^1]* 1 [^1]*
| [^2]* 2 [^2]*
| [^3]* 3 [^3]*
| [^4]* 4 [^4]*
| [^5]* 5 [^5]*
| [^6]* 6 [^6]*
| [^7]* 7 [^7]*
| [^8]* 8 [^8]*
| [^9]* 9 [^9]*
)
$

为了发现,如果您将捕获组放在字母和数字周围,
并使用分支重置:

 ^ 
(?|
[^a]* (a) [^a]*
| [^b]* (b) [^b]*
| [^c]* (c) [^c]*
| [^d]* (d) [^d]*
| [^e]* (e) [^e]*
| [^f]* (f) [^f]*

| [^0]* (0) [^0]*
| [^1]* (1) [^1]*
| [^2]* (2) [^2]*
| [^3]* (3) [^3]*
| [^4]* (4) [^4]*
| [^5]* (5) [^5]*
| [^6]* (6) [^6]*
| [^7]* (7) [^7]*
| [^8]* (8) [^8]*
| [^9]* (9) [^9]*
)
$

这是输出:

 **  Grp 0 -  ( pos 0 , len 50 ) 
0b 5a 3f 5a 7d d0 5d e6 2b c4 7e 7d c2 c0 e6 9a

** Grp 1 - ( pos 7 , len 1 )
f

-----------------------

** Grp 0 - ( pos 50 , len 51 )

84 bd aa 74 f3 85 da 9d ac b6 e0 b6 62 0f b5 d5

** Grp 1 - ( pos 77 , len 1 )
c

-----------------------

** Grp 0 - ( pos 101 , len 51 )

c0 b0 f5 60 02 8b 1c a4 41 7c 53 f2 85 20 a0 d1

** Grp 1 - ( pos 148 , len 1 )
d

关于regex - Grep:仅查找匹配未知字符一次的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27825784/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com