gpt4 book ai didi

regex - 使用 grep 查找字符串模式

转载 作者:行者123 更新时间:2023-12-02 07:51:15 24 4
gpt4 key购买 nike

我试图在几个 .txt 文件的文本中找到特定的序列。我正在寻找一个连接到 4 位数字的字符串。例如沃森1990。我使用在线测试器测试了正则表达式,它似乎可以工作,但是表达式(或其组合)未能在我的文件中产生输出。

我的正则表达式如下:

egrep '\w*\d{4}' *.txt

但是它不会产生任何输出。你能告诉我这有什么问题吗?我正在使用 OSX(雪豹)。

谢谢。

最佳答案

正则表达式不起作用的原因是在扩展的正则表达式语法中,标记 \d 匹配字母 d,而不是数字。请改用字符类 [0-9]

此外 \w 匹配数字和字母,所以你可能不想在这里使用它。使用字符类 [A-Za-z] 匹配 A-Z 或 a-z 中的字母。

我将 * 更改为 +,因为您可能希望数字前至少有一个字母。 + 表示“一个或多个”,而 * 表示“零个或多个”。

最后,您可能希望考虑如果您看到一个 5 位数字会发生什么。您的正则表达式目前接受它,因为 5 位数字以 4 位数字开头。

总之,试试这个:

egrep '[a-zA-Z]+[0-9]{4}' *.txt

关于regex - 使用 grep 查找字符串模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3651714/

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