gpt4 book ai didi

regex - 可变长度字符串中数字的 Grep 正则表达式

转载 作者:行者123 更新时间:2023-12-04 19:57:59 24 4
gpt4 key购买 nike

我需要一些方法来查找包含任意字符和数字组合的单词,但 仅 4 位数字 , 和至少一个字符。

例子:

a1a1a1a1        // Match
1234 // NO match (no characters)
a1a1a1a1a1 // NO match
ab2b2 // NO match
cd12 // NO match
z9989 // Match
1ab26a9 // Match
1ab1c1 // NO match
12345 // NO match
24 // NO match
a2b2c2d2 // Match
ab11cd22dd33 // NO match

最佳答案

要匹配 grep 中的数字,您可以使用 [0-9]。要匹配除数字以外的任何内容,您可以使用 [^0-9]。由于它可以是任意数量的 ,也可以没有字符,因此您可以添加“*”(前面的任意数量)。所以你想要的是合乎逻辑的
(anything not a digit or nothing)* (any single digit) (anything not a digit or nothing)* . ...

直到您有 4 个“任意一位数”组。即 [^0-9]*[0-9]...

我发现使用 grep 长模式,尤其是需要转义的长串特殊字符时,最好慢慢建立,这样你才能确定你明白发生了什么。例如,

#this will highlight your matches, and make it easier to understand
alias grep='grep --color=auto'
echo 'a1b2' | grep '[0-9]'

将向您展示它是如何匹配的。一旦你理解了每个部分,你就可以扩展模式。

关于regex - 可变长度字符串中数字的 Grep 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1863204/

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