V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
SuperMild
5.49D

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

  •  
  •   SuperMild · Jul 9, 2022 · 6170 views
    This topic created in 1397 days ago, the information mentioned may be changed or developed.

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

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

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

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

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

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

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

    值得一试!
    future0906
        20
    future0906  
       Jul 9, 2022
    @SuperMild

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

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

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

    但是现在的算法并不能准确理解人类的自然语言,也就不能准确转换。不过 AI 可以作为一种辅助工具,降低写正则的难度。还可以作为一种学习工具,学习正则的使用方法。
    MMMMMMMMMMMMMMMM
        26
    MMMMMMMMMMMMMMMM  
       Jul 10, 2022
    copylot 写个注释有时候真能蹦出自己要的正则
    lovestudykid
        27
    lovestudykid  
       Jul 10, 2022   ❤️ 1
    @dji38838c 这么多人只看标题的
    skmO
        28
    skmO  
       Jul 10, 2022
    很需要,很有用,每次都得查半天
    herozzm
        29
    herozzm  
       Jul 10, 2022
    说清楚比自己写更难
    PeacePeach
        30
    PeacePeach  
       Jul 10, 2022
    收藏了,好东西
    kkocdko
        31
    kkocdko  
       Jul 10, 2022
    现在有许多改良正则语法的项目,我觉得那些项目会更可靠,更实用。
    1sen
        32
    1sen  
       Jul 11, 2022
    有点意思,收藏了,感谢分享
    zglzy
        33
    zglzy  
       Jul 12, 2022 via Android
    @kkocdko 比如这样的项目吗?:https://github.com/yoav-lavi/melody
    devwolf
        34
    devwolf  
       Jul 12, 2022
    感谢安利,这个网站结合
    devwolf
        35
    devwolf  
       Jul 12, 2022   ❤️ 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 也能快捷回复,没打完)
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3293 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 126ms · UTC 12:16 · PVG 20:16 · LAX 05:16 · JFK 08:16
    ♥ Do have faith in what you're doing.