gpt4 book ai didi

regex - 什么是最有效的不区分大小写的 grep 用法?

转载 作者:IT老高 更新时间:2023-10-28 12:38:25 24 4
gpt4 key购买 nike

我的目标是匹配属于 Yahoo! 的电子邮件地址域家族。在 *nix 系统(我将使用 Ubuntu)中,这些匹配模式的方法中的任何一种都有哪些优点和缺点?

如果还有其他我无法想象的更优雅的解决方案,请分享。

他们在这里:

  • 使用 grep带选项 -i :

grep -Ei "@(yahoo|(y|rocket)mail|geocities)\.com"

  • 将字符全部转换为大写或小写,然后 grep :

tr [:upper:] [:lower:] < /path/to/file.txt | grep -E "@(yahoo|(y|rocket)mail|geocities)\.com"

  • 为模式中的每个字符包含一个字符集(下面的内容当然不匹配“@rOcketmail.com”之类的内容,但是如果我检查每个字符的大小写,您就会知道它会变成什么):

grep -E "@([yY]ahoo|([yY]|[rR]ocket)[mM]ail|[gG]eo[cC]ities)\.[cC][oO][mM]" /path/to/file.txt

最佳答案

grep -i 结果比在 grepping 之前转换为 lowers 慢得多,所以我最终使用了 #2 的变体。

感谢 @mike-w 提醒我简单的测试还有很长的路要走。

关于regex - 什么是最有效的不区分大小写的 grep 用法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22924548/

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