V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
hgjian
V2EX  ›  程序员

Everything 正则实时求助

  •  
  •   hgjian · 2023-08-05 12:40:58 +08:00 · 1851 次点击
    这是一个创建于 505 天前的主题,其中的信息可能已经有所发展或是发生改变。
    各位专业程序员,请给个帮助,需求如下:
    a.在 Everything 中实现 所有以 8 位数字开头的文件名;
    b.在 Everything 中实现 所有 不是 以 8 位数字开头的文件名;
    a.在 Everything 中实现 所有以 8 位数字 结尾 的文件名;
    b.在 Everything 中实现 所有 不是 以 8 位数字 结尾 的文件名;
    请问怎么写正则?没有搜索到能用的语法。
    14 条回复    2023-08-05 14:38:48 +08:00
    Perry
        1
    Perry  
       2023-08-05 12:49:44 +08:00 via iPhone   ❤️ 7
    你问过 LLM/ChatGPT 了没?这个是他们很擅长的东西。
    tux
        2
    tux  
       2023-08-05 12:55:01 +08:00
    帮你问了 claude

    在 Everything 搜索工具中使用正则表达式实现某些文件名匹配的方法:

    a. 所有以 8 位数字开头的文件名:

    正则:`^\d{8}.*`

    b. 所有不是以 8 位数字开头的文件名:

    正则:`^(?!\d{8}).*`

    c. 所有以 8 位数字结尾的文件名:

    正则:`.*\d{8}$`

    d. 所有不是以 8 位数字结尾的文件名:

    正则:`^((?!\d{8}$).)*$`

    具体解释:

    - `^` 表示开头
    - `\d{8}` 表示匹配 8 位数字
    - `.*` 表示任意字符
    - `$` 表示结尾
    - `(?!\d{8})` 是负向先行断言,表示后面不能是 8 位数字

    需要在 Everything 的搜索框中填入正则表达式并选择"Regex"选项来进行匹配搜索。
    awthink
        3
    awthink  
       2023-08-05 12:57:31 +08:00
    刚去问了 gtp ,测试结果第一个不行,后面几个应该没问题(搜出上百万个文件,没法一一检查)
    tux
        4
    tux  
       2023-08-05 12:58:44 +08:00   ❤️ 1
    刚试了下,真的可以....
    搜索框不加 `` 直接填 ^\d{8}.*
    然后搜索菜单把使用正则表达式勾上
    hgjian
        5
    hgjian  
    OP
       2023-08-05 13:00:59 +08:00
    @tux #4 感谢,我试试看
    BaseException
        6
    BaseException  
       2023-08-05 13:05:56 +08:00 via iPhone
    我现在正则需求都让 gpt 给我实现,描述清楚就行,测试过多次,都是能用的。切记要描述清楚,描述清楚需求也是一项能力。
    hgjian
        7
    hgjian  
    OP
       2023-08-05 13:26:10 +08:00
    @tux #2 前面两个可以用,后面 以 8 位数 结尾的 不能用,没有效果
    hgjian
        8
    hgjian  
    OP
       2023-08-05 13:34:18 +08:00
    @tux #2 不是以 8 位数 结尾的 正则不能用,前面两个可以。
    tux
        9
    tux  
       2023-08-05 13:34:26 +08:00
    后面两个
    .*\d{8}$
    ^((?!\d{8}$).)*$
    我这电脑上都正常
    giskard
        10
    giskard  
       2023-08-05 13:38:40 +08:00   ❤️ 1
    a. ^\d{8}
    b. ^([^0-9]+|\d{1,7}[^0-9]+|\d{9,}.*)
    c. \d{8}$
    d. ([^0-9]+|[^0-9]+\d{1,7}|\d{9,})$
    hgjian
        11
    hgjian  
    OP
       2023-08-05 13:50:49 +08:00
    @tux #9 可能是文件扩张名的原因,比如 .txt .xlsx 什么的,这些要怎么排除呢?
    hgjian
        12
    hgjian  
    OP
       2023-08-05 13:54:44 +08:00
    @giskard ,请问怎么 排除 8 位数结尾的文件名的扩张名,比如 .txt .xlsx 什么的,这些要怎么排除呢?要不然搜索不到结果
    hgjian
        13
    hgjian  
    OP
       2023-08-05 13:57:12 +08:00
    弄好了 regex:[0-9]{8}(\.txt)$ 这样
    garibellee
        14
    garibellee  
       2023-08-05 14:38:48 +08:00
    我上次 chatgpt 很舒服比搜索引擎靠谱多了,剩下学习复习成本
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1065 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 23:28 · PVG 07:28 · LAX 15:28 · JFK 18:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.