求一个数据库或者正则大佬帮忙解决一个字符匹配的问题. - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
huangzhiyia

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

  •  
  •   huangzhiyia 2020 年 12 月 19 日 1365 次点击
    这是一个创建于 1953 天前的主题,其中的信息可能已经有所发展或是发生改变。
    • 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 日
    第一个正则表达式
    /a/.(?!/).+

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

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

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

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

    /a/.(?!/).+

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

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

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

    如果大家都是看源码默默解决,请教周围的人,stackoverflow 这类社区也没存在的必要,这社区的板块也没存在的必要,在新的领域谁不是新手一步一步走来,学习最好的方式就是提问。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     918 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 44ms UTC 19:19 PVG 03:19 LAX 12:19 JFK 15:19
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86