首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
snoopy1024
V2EX  ›  程序员

世界上为什么会有正则表达式这么反人类的玩意儿?

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

    如果不是必须用,尽量不用这玩意儿… 学也不想学,学了后又忘得快。 今天有个需求要写正则,吐槽一下…

    第 1 条附言  ·  327 天前
    😂😂 我快被你们喷死了, 需求解决了,正则的确是最简洁和高效率的办法。之前硬着头皮认真学过,只是平时没咋用,很容易遗忘,每次看别人写的简直头大,感谢楼下大佬们提供的工具。
    170 回复  |  直到 2019-03-06 10:26:01 +08:00
    1  2  
    old9
        101
    old9   328 天前 via Android   ♥ 7
    正则表达式是个投入很小回报很大的工具,这样的工具可不多,楼主要珍惜。
    northernlights
        102
    northernlights   328 天前
    这么好用的东西怎么反人类了??只是回头去读有点费劲而已,但是写着、用着都很爽啊
    ahonn
        103
    ahonn   328 天前
    那么好用,那里反人类了?
    xxgirl2
        104
    xxgirl2   328 天前   ♥ 1
    写的时候加两行注释写两个匹配实例就行了,也方便别人读懂
    luoleng
        105
    luoleng   328 天前   ♥ 2
    我觉得正则表达式挺好用的呀~嗯、果然,不是人人都想能像我一样年纪轻轻就精通了正则。。哈哈哈哈……
    Semidio
        106
    Semidio   328 天前
    读正则可以用各种工具,比如 https://regex101.com/
    sampeng
        107
    sampeng   328 天前 via iPhone
    现在是能写正则不写 if ………多简洁啊…真正的简单可依赖
    mokain
        108
    mokain   328 天前
    正则一点不反人类吧,理解规则特别好记住!而且特别喜欢这种小巧又强大的工具
    srx1982
        109
    srx1982   328 天前
    现在你有一个问题
    你选择用正则表达式来解决
    现在你有两个问题了
    via
        110
    via   328 天前 via iPhone
    正则一时爽,维护火葬场
    Beebird
        111
    Beebird   328 天前 via Android
    正则应该算一项了不起的发明才对。
    bakabie
        112
    bakabie   328 天前 via Android
    除了读不懂之外,写的时候特别好用
    ps1aniuge
        113
    ps1aniuge   328 天前
    华山玉女峰惨案---气剑之争,脚本界反正则之辩!
    http://bbs.chinaunix.net/thread-4297525-1-1.html
    909076350
        114
    909076350   328 天前
    正则表达式很好用的 用来过滤数据 方便快捷
    但是个人觉得可读性差
    至于忘记了 如果常用的话 写下笔记 常用的符号和函数也就那几个
    ffffffff8
        115
    ffffffff8   328 天前
    说出心声了。
    autoxbc
        116
    autoxbc   328 天前 via iPhone
    正则就是精炼的程序,编程的规范在正则里都应该遵守

    比如可维护,不好读的正则不如不写;
    比如语义清晰,看不出语义的应该有注释;
    比如不要炫技,要考虑合作者的技能等级
    ngg0707
        117
    ngg0707   328 天前
    程序错误吧,维基百科里“程序错误”=bug
    jim9606
        118
    jim9606   328 天前
    你要知道如果你不用正则,那个匹配逻辑你要写多少行,写那玩意虽然直观一些但很无聊的。
    通常是出现上下文相关语法时正则会比较难看,这时考虑用条件判断拆分成多个正则表达式就好看了。
    dd0754
        119
    dd0754   328 天前 via iPhone
    这么好用怎么会是反人类?
    yanaraika
        120
    yanaraika   328 天前 via Android
    只要没有大量前向反向引用就用正则,否则写代码 parse
    dangyuluo
        121
    dangyuluo   328 天前
    这东西属于学习曲线很陡,但是学会了用处很大的一类工具
    1a0ma0
        122
    1a0ma0   328 天前 via iPhone
    写还好,读就痛苦了。即使是自己写的。
    AX5N
        123
    AX5N   328 天前
    干嘛要读正则,难道你还要去改吗?都是直接写注释,要改直接重新写了。
    Trumeet
        124
    Trumeet   328 天前
    同。
    Imr
        125
    Imr   328 天前 via iPhone
    做运维可不这么想,正则对于文本处理简直是太基础的东西,没觉着用和读有啥难度,而且没有正则,logstash 怎么用
    koebehshian
        126
    koebehshian   328 天前
    我也觉得反人类,一般程序语言,标识符之间是可以加空格的,而正则表达式空格都没法加,就直接一坨,只有使用有语法高亮的编辑器时读起来稍微好一点。
    lengyihan
        127
    lengyihan   328 天前 via Android
    你说得对。😁😂😂😂
    maxxfire
        128
    maxxfire   328 天前
    等你学会了,你会说“真香”
    zmlu
        129
    zmlu   328 天前
    可以把一行正则换成无数个 if else
    focusheart
        130
    focusheart   328 天前
    除了正则,还有什么更好的选择?

    换工种
    fortunezhang
        131
    fortunezhang   328 天前
    当你有一个很困难的问题时,你用正则解决了他。好了,现在你有两个困难的问题了。 我记得是来自某本关于测试的书里面。
    DOLLOR
        132
    DOLLOR   328 天前
    主要是缺少优秀的可视化工具吧
    julyclyde
        133
    julyclyde   328 天前
    因为这东西设计出来就是给机器看效率优化的
    从设计之初就没考虑给人看
    Felldeadbird
        134
    Felldeadbird   328 天前
    不过换一个语言写的时候,没有找到好用的库,正则是最好的道具吧。
    898601566
        135
    898601566   328 天前
    学习任何新知识不用都会忘吧
    wly19960911
        136
    wly19960911   328 天前
    正则很爽啊,写起来没什么大问题,经常用于搜索替换里面,因为我前端文本处理很少。
    lixuedong
        137
    lixuedong   328 天前
    @zhuangzhuang1988 Linux 是自己的 ,Windows 是微软的
    mengzhuo
        138
    mengzhuo   328 天前
    LZ 10 分钟入门的东西。
    学会了绝对会是
    真香.jpg
    inhzus
        139
    inhzus   328 天前 via Android
    没有正则表达式、自动机这些东西,说得夸张点你我现在都在写汇编代码
    dingyaguang117
        140
    dingyaguang117   328 天前
    我以为是广告贴,LZ 发明了什么不得了的神工具呢。
    maplerecall
        141
    maplerecall   328 天前 via Android
    正则对于特征字符串检测非常的简单好用啊,入门到上手也就十分钟吧,理解了根本不会忘,平时最多查几个转义符而已……
    newtype0092
        142
    newtype0092   328 天前
    @wenzhoou 试了下工程里几个又臭又长的,这个是真的好用😄
    lib360
        143
    lib360   328 天前
    经常用,好使
    SakuraKuma
        144
    SakuraKuma   327 天前
    坐等真香。。
    正则拯救一大堆重复工作 /代码。。
    ARhen
        145
    ARhen   327 天前
    自己写的正则还好,读别人的正则真的痛苦。尤其是长的,看到就头疼
    syG6WNaS
        146
    syG6WNaS   327 天前
    真香。
    anonymous256
        147
    anonymous256   327 天前   ♥ 3
    没正则日子没法过, 等你需要文本处理就知道了. 写句正则就能解决问题, 多舒服. 至于正则需要记忆? 不用, 忘了就忘了吧. 大不了写的时候, 查下正则的速查表, 不到 3 分钟就想出来了. 分享一个正则的速查表: https://www.jb51.net/shouce/jquery1.82/regexp.html

    @ARhen #145 读别人的正则推荐用这个在线的可视化工具 https://regexper.com/
    passerbytiny
        148
    passerbytiny   327 天前
    没有正则表达式,你准备怎么看日志,总不至于是个系统就上日志分析系统吧。
    Krime
        149
    Krime   327 天前
    好用啊。
    虽然真的不好读。
    sdlearn
        150
    sdlearn   327 天前 via Android
    正则是四两拨千斤的好东西
    ARhen
        151
    ARhen   327 天前
    @anonymous256 好滴 感谢分享
    不过我日常写正则是匹配 html,会把 html 标签放进去
    DefoliationM
        152
    DefoliationM   327 天前 via Android
    反人类还行 这么好用的东西竟然反人类
    baiban
        153
    baiban   327 天前
    正则虽然特别难理解,而且还都标准不统一。但是没有正则,匹配文字更麻烦。
    Bakumon
        154
    Bakumon   327 天前
    同感
    xuanwu
        155
    xuanwu   327 天前
    有没有可以生成正则但改进了可读性的 DSL 呢?
    leexy
        156
    leexy   327 天前
    帮你上热门
    talen666
        157
    talen666   327 天前
    主要是记不住,每次写都要看文档
    cw2k13as
        158
    cw2k13as   327 天前
    简直就是神器
    feelinglucky
        159
    feelinglucky   327 天前
    面试的时候问正则其实比问算法要实用得多
    BruceAuyeung
        160
    BruceAuyeung   327 天前 via Android
    正则的缺点有 1)可读性差 2)性能差,比如实现同样的功能,直接用 java if/else 比 java 正则性能好上一个数量级。优点:表现力丰富,简约
    civet
        161
    civet   327 天前
    Heanes
        162
    Heanes   327 天前
    正则学起来来,但是就是好用
    sc13
        163
    sc13   327 天前 via Android
    自己写挺好用的,看别人写的就觉得反人类
    cpdyj0
        164
    cpdyj0   327 天前
    除了不方便阅读,倒是挺好用的,手写 parser 好累啊,正则投入小,回报大,就是别人看不懂
    Hopetree
        165
    Hopetree   327 天前
    求求楼主,千万不要学
    beingWH
        166
    beingWH   327 天前
    你有一个问题
    你打算用正则
    好了,现在你有两个问题
    guanhui07
        167
    guanhui07   327 天前
    真香
    ijustdo
        168
    ijustdo   327 天前
    你会发现你无论那个语言都离不开正则
    基本现在的编辑器都支持正则吧
    darknoll
        169
    darknoll   327 天前
    形式语言与自动机这门课,上学时候考了 90 分
    musi
        170
    musi   327 天前
    挺好用的啊,就是别人给我发了一串代码看了半天没看懂,然后问他在干嘛,之后就重写了一句
    1  2  
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1804 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 29ms · UTC 02:27 · PVG 10:27 · LAX 18:27 · JFK 21:27
    ♥ Do have faith in what you're doing.