V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
huangzhiyia
V2EX  ›  问与答

求一个数据库或者正则大佬帮忙解决一个字符匹配的问题.

  •  
  •   huangzhiyia · 2020-12-19 11:02:59 +08:00 · 1007 次点击
    这是一个创建于 1430 天前的主题,其中的信息可能已经有所发展或是发生改变。
    • Django 模型设计
        user = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name="用户")
        folder = models.CharField(max_length=768, default="/", verbose_name="目录")
        file_name = models.CharField(max_length=256, default=None, null=True, verbose_name="文件名")
        file_size = models.BigIntegerField(default=0, verbose_name="文件大小,Bytes")
    
    • 示例

    '/a/c/d/e/f'

    '/a/1.txt'

    '/a/2.word'

    要求:查出所有 /a/ 开头的字符串, 但后续字符串中不包含 / 以及之后的字符内容

    • 例如

    传入参数 '/a/' ,将查询到

    /a/1.txt

    /a/2.word 数据.

    最好是 SQL 语句,实在不行正则表达式也可以.

    • 说明

    真的不擅长写复杂的正则表达式与 SQL 命令,如果自己查资料学,折腾的话可能要一两天,

    对于经验丰富的开发者来说可能只需要 3-10 分钟.

    所以如果您抽空(摸鱼)的间隙的回答能帮助到我,我将赠与您一杯奶茶钱(15 CNY)表示感谢

    (支付宝账号私发我邮箱:本站用户名 @gmail.com)

    第 1 条附言  ·  2020-12-19 12:15:08 +08:00
    第一个正则表达式
    /a/.(?!/).+

    改进(包含子目录名)的正则表达式

    /a/[^\f\n\r\t\v\/]+
    liprais
        1
    liprais  
       2020-12-19 11:06:13 +08:00 via iPhone   ❤️ 1
    15 块钱是来侮辱人的么
    还是你一天的时间就值十五块钱?
    raaaaaar
        2
    raaaaaar  
       2020-12-19 11:09:14 +08:00 via Android
    你不说钱大家可能看看顺手就写了,要说钱就这
    huangzhiyia
        3
    huangzhiyia  
    OP
       2020-12-19 11:11:41 +08:00
    @liprais 回复旁边两个字:请尽量让自己的回复能够对别人有帮助.

    如果您觉得这篇提问帖子侮辱您,您可以直接 block 我而不是制造噪音与纷争.
    huangzhiyia
        4
    huangzhiyia  
    OP
       2020-12-19 11:17:06 +08:00
    @raaaaaar 也许我表达有误,但我是想表达对别人的帮助感恩,这帖子不是有偿解决问题,这是两码事.

    再退一步讲:大佬可能抽空三分钟可能就解决了,换算时薪是 300 块一天 2400 块,试问论坛有多少人的薪水能到达这个地步?
    huangzhiyia
        5
    huangzhiyia  
    OP
       2020-12-19 11:28:24 +08:00
    花了 10 分钟学习了下写出来了,正则是

    /a/.(?!/).+

    希望对后来者有帮助.
    makdon
        6
    makdon  
       2020-12-19 12:20:15 +08:00
    但是你这样写,每次查 DB 都要扫全表做正则匹配吧...数据量大一点性能应该很捉鸡
    huangzhiyia
        7
    huangzhiyia  
    OP
       2020-12-19 13:39:45 +08:00 via Android
    @makdon 是啊,现在我重新设计模型了,增加一个指向自身的目录外键。
    chitanda
        8
    chitanda  
       2020-12-19 14:31:40 +08:00 via iPhone
    听我一句劝,这些东西,你现在觉得难不去学,以后一直这么难,大家都是这么克服过来的,没有人一上来就懂正则和数据库设计。现在有别人帮你写,以后呢?面试呢?
    huangzhiyia
        9
    huangzhiyia  
    OP
       2020-12-19 18:21:05 +08:00 via Android
    @chitanda 谢谢你的建议,但是不是难不难的问题,而是解决问题的效率的问题,并且共享问题以及答案供后人参考。

    我遇到的问题,自己解决了,别人遇到类似的问题,搜索引擎找不到问题也要自己解决。

    共享知识与踩过的坑,给互联网多一份参考答案。

    如果大家都是看源码默默解决,请教周围的人,stackoverflow 这类社区也没存在的必要,这社区的板块也没存在的必要,在新的领域谁不是新手一步一步走来,学习最好的方式就是提问。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3052 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 14:31 · PVG 22:31 · LAX 06:31 · JFK 09:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.