gpt4 book ai didi

regex - grep 搜索某些字符 任意顺序 任意大小写

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

我需要用 grep 搜索字符“james”。问题是它们可以按任何顺序排列,并且它们中的任何一个都可以大写。例如,需要找到以下内容..

  • Aemjs
  • emaJS
  • SeMaJ

这只是几种可能,显然还有更多的组合。

如果可能,这需要使用一个 grep 语句来完成。 grep 搜索是使用 Encase 软件完成的,而不是在 unix 机器上。输入只接受一个 grep 命令。是否可以在一个语句中做到这一点?

最佳答案

这是一个有趣的正则表达式:

/ (?=.{0,4}j)(?=.{0,4}a)(?=.{0,4}m)(?=.{0,4}e)(?=.{0,4}s).{5} /i

这样做的目的是确保字符串“james”中的每个字符都在接下来的 5 个字符内匹配,并且 i 修饰符使其不区分大小写。

Demo on Regex101

把它放入grep,你会得到这样的结果:

grep -Pi " (?=.{0,4}j)(?=.{0,4}a)(?=.{0,4}m)(?=.{0,4}e)(?=.{0,4}s).{5} " $file

其中 $file 是您想要 grep 遍历的文件。请注意,-P 标志需要 GNU grep,并表明该模式是 Perl 风格的正则表达式( native grep 正则表达式,即使使用 -E,不支持前瞻)。 -i 标志使其不区分大小写。

关于regex - grep 搜索某些字符 任意顺序 任意大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39907020/

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