gpt4 book ai didi

regex - 查找命令与 'regex' 匹配不工作

转载 作者:行者123 更新时间:2023-11-29 09:46:32 26 4
gpt4 key购买 nike

我正在尝试用下面的正则表达式做一个简单的文件名匹配,我测试它可以从这个 page 开始工作示例文件名 ABC_YYYYMMDDHHMMSS.sha1

ABC_20[0-9]{2}(0[1-9]|1[0-2])([0-2][0-9]|3[0-1])([0-2][0-3])([0-5][0-9])([0-5][0-9])\.sha1

当我在 find-regex 标志中耦合它时,就像

find . -type f -regex "ABC_20[0-9]{2}(0[1-9]|1[0-2])([0-2][0-9]|3[0-1])([0-2][0-3])([0-5][0-9])([0-5][0-9])\.sha1"

该命令未识别路径中存在的文件(例如 ABC_20161231225950.sha1)。我从这个 page 中知道许多现有的正则表达式类型,但我意识到我的类型是 posix-extended 并尝试如下,

find . -type f -regextype posix-extended -regex 'ABC_20[0-9]{2}(0[1-9]|1[0-2])([0-2][0-9]|3[0-1])([0-2][0-3])([0-5][0-9])([0-5][0-9])\.sha1'

还是没有结果。我搜索了一些类似的此类问题,但它们涉及提供错误的正则表达式导致找不到文件。就我而言,尽管发现正则表达式是正确的。我需要知道我在这里错过了什么。也可能如何在 find 中使用 -regex 时调试不匹配问题。

注意:- 我可以对正则表达式中的捕获组进行一些优化,但这不在当前问题的范围内。

最佳答案

在你的正则表达式的开头添加 .* 因为你总是会在路径的开头得到类似 ./ 的东西

find . -type f -regextype posix-extended -regex '.*ABC_20[0-9]{2}(0[1-9]|1[0-2])([0-2][0-9]|3[0-1])([0-2][0-3])([0-5][0-9])([0-5][0-9])\.sha1'

关于regex - 查找命令与 'regex' 匹配不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38742842/

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