V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
探索世界的好奇心万岁
SuperMild
V2EX  ›  分享发现

如果让 AI 帮忙写正则表达式

  •  
  •   SuperMild · 84 天前 · 3469 次点击
    这是一个创建于 84 天前的主题,其中的信息可能已经有所发展或是发生改变。

    看到这个 https://www.autoregex.xyz

    突然想到,如果能让 AI 帮忙写正则,会是一件非常有意义的事情。

    第 1 条附言  ·  83 天前
    毕竟正则本来就不太适合人脑去处理,多数人在写正则时感到痛苦。另外可能 AI 帮忙写 CSS 也很有意义。
    35 条回复    2022-07-12 16:30:44 +08:00
    Donahue
        1
    Donahue  
       83 天前
    很强
    churchmice
        2
    churchmice  
       83 天前   ❤️ 4
    基本是脱裤子放屁
    woqujjfly
        3
    woqujjfly  
       83 天前
    @churchmice 对头
    kyuuseiryuu
        4
    kyuuseiryuu  
       83 天前 via iPhone   ❤️ 3
    你需要很懂正则才能教 ai 正则。
    但当你很懂正则,你就不需要 ai 帮你写正则。
    你要用正则帮你过滤数据?那不如直接教 ai 怎么识别数据……
    Chell
        5
    Chell  
       83 天前
    用自然语言描述就会丧失精确性,CSS 也是一样,都让自然语言说完了为啥不直接用符号表达。。顶多适用于一些 toy projects
    Jooooooooo
        6
    Jooooooooo  
       83 天前
    稍微用了下挺有意思, 收藏了
    dreasky
        7
    dreasky  
       83 天前
    直接用 AI 去匹配想要的字符串不就得了
    SuperMild
        8
    SuperMild  
    OP
       83 天前   ❤️ 3
    @kyuuseiryuu 如果有一个很懂正则的人教会 AI 呢?然后其他不熟悉正则的人就可以直接拿来用了。
    crayygy
        9
    crayygy  
       83 天前
    当你描述正则规则的时候,正则就已经写完了啊,剩下的就只是怎么优化和精简
    licoycn
        10
    licoycn  
       83 天前
    这方面 github copilot 还是可以,虽然有时候不是那么匹配~
    kyuuseiryuu
        11
    kyuuseiryuu  
       83 天前 via iPhone
    @SuperMild ai 错了怎么排错呢?还得用的人懂
    lovepplforever
        12
    lovepplforever  
       83 天前
    用 copilot ,很强
    SuperMild
        13
    SuperMild  
    OP
       83 天前
    @kyuuseiryuu 验证正则,用单元测试比用人脑运算更合理吧,平时一般人如果不经常写正则,写完总得喂一些用例测试一下才放心。
    Lykr
        14
    Lykr  
       83 天前
    随便写了几个表达式, 还挺准确的

    但是一些用来提取信息的正则感觉不好描述
    fox0001
        15
    fox0001  
       83 天前 via Android
    其实,如果不懂正则表达式,或者正则表达式太复杂而看不懂,是不是应该考虑使用其它更容易理解的方式去实现?主要考虑到日后需求变化,要改这个正则表达式。
    future0906
        16
    future0906  
       83 天前   ❤️ 1
    本末倒置的一件事,本来正则就是一种 DSL 用来描述匹配过程的规则。如果自然语言能描述匹配过程的话,就没正则什么事了。
    SuperMild
        17
    SuperMild  
    OP
       83 天前
    @future0906 感觉很多人有这方面的误会。

    不是用自然语言来描述匹配过程,而是 AI 根据自然语言猜测人类的意图,然后 AI 写正则。

    有点类似于程序员根据 “用户用人类语言提的需求”,然后人类写正则。

    是 AI 在一定程度上取代人类,而非用人类语言取代正则。
    LeeReamond
        18
    LeeReamond  
       83 天前
    可能有用,相当于百度青春版吧。。没用的地方是因为普适性差,如果遇到写不出的正则,那么大概率使用自然语言描述该有限状态机也是非常困难的事,恐怕得写一大堆说明,还得加几个例子。
    andyJado
        19
    andyJado  
       83 天前
    swift WWDC22 发布了人话版 Regex

    值得一试!
    future0906
        20
    future0906  
       83 天前
    @SuperMild

    没区别,正则描述的匹配过程,就是状态机。
    所谓的: “ AI 根据自然语言猜测人类的意图,然后 AI 写正则”。这种想法多少有点 AI 文科的意思了。

    正则本身的基础规则也很容易理解,麻烦的是不同正则引擎之间的拓展规则。有时间琢磨 AI 生成正则还不如像刚才说的另辟蹊径去处理字符串匹配。
    yfugibr
        21
    yfugibr  
       83 天前 via Android
    感觉不太现实,你要通过喂数据让 AI 写个验证手机号(包括号段)的正则,那你就得把所有号段的数据都给一些,同时还要用某种方式让 AI 理解,某些数字每列出来的
    yfugibr
        22
    yfugibr  
       83 天前 via Android
    @yfugibr #21 补:某些没列出来的数字组合是不合法
    所以肯定不能直接喂数据,得告诉他规则(哪些号段可以有,后八位只用限制数字等等),但是有时间把这些规则捋清告诉他,你直接就用正则写出来了
    akira
        23
    akira  
       83 天前
    写个中国身份证的正则校验, 这样的估计还更简单点
    dji38838c
        24
    dji38838c  
       83 天前   ❤️ 1
    已经有了:
    AutoRegex: English to RegEx with Natural Language Processing
    https://www.autoregex.xyz/
    tinybvjk
        25
    tinybvjk  
       83 天前 via iPhone
    谢谢分享,很有趣的想法。

    对于开发者来说,要想把正则表达式写好写对是一件非常困难的事情,一旦写不对还可能会造成巨大的损失。

    但是现在的算法并不能准确理解人类的自然语言,也就不能准确转换。不过 AI 可以作为一种辅助工具,降低写正则的难度。还可以作为一种学习工具,学习正则的使用方法。
    MMMMMMMMMMMMMMMM
        26
    MMMMMMMMMMMMMMMM  
       83 天前
    copylot 写个注释有时候真能蹦出自己要的正则
    lovestudykid
        27
    lovestudykid  
       83 天前   ❤️ 1
    @dji38838c 这么多人只看标题的
    skmO
        28
    skmO  
       83 天前
    很需要,很有用,每次都得查半天
    herozzm
        29
    herozzm  
       83 天前
    说清楚比自己写更难
    PeacePeach
        30
    PeacePeach  
       83 天前
    收藏了,好东西
    kkocdko
        31
    kkocdko  
       82 天前
    现在有许多改良正则语法的项目,我觉得那些项目会更可靠,更实用。
    weivi
        32
    weivi  
       82 天前
    有点意思,收藏了,感谢分享
    zglzy
        33
    zglzy  
       81 天前 via Android
    @kkocdko 比如这样的项目吗?:https://github.com/yoav-lavi/melody
    devwolf
        34
    devwolf  
       81 天前
    感谢安利,这个网站结合
    devwolf
        35
    devwolf  
       81 天前   ❤️ 1
    补充#34 感谢安利,这个网站结合 https://regex101.com/https://deerchao.cn/tutorials/regex/regex.htm 对于我这种用到必看手册的正则菜鸟来说相当便利。比如我输入“nine digits or nine chinese characters” 能让我知道中文字符对应的正则是

    [\d]{9}|[\u4e00-\u9fa5]{9}


    ( orz 第一次知道 ctrl + enter 也能快捷回复,没打完)
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2088 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 47ms · UTC 09:06 · PVG 17:06 · LAX 02:06 · JFK 05:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.