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

各位 v 友 是怎么学习正则的?

  •  
  •   xchaoinfo · 2020-12-05 16:17:29 +08:00 · 3511 次点击
    这是一个创建于 1454 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目前对于正则的水平, 就是遇到问题, 就去搜索.

    想系统的学习下正则. 各位 V 友有什么好的建议或者资料推荐吗?

    34 条回复    2020-12-07 14:49:56 +08:00
    RRRoger
        1
    RRRoger  
       2020-12-05 16:20:26 +08:00
    和你一样😂
    Curtion
        2
    Curtion  
       2020-12-05 16:31:19 +08:00   ❤️ 1
    https://github.com/qdlaoyao/js-regex-mini-book

    我是当基础规则知道后就去了解 NFA 和 DFA 了....
    tinytoadd
        3
    tinytoadd  
       2020-12-05 16:47:27 +08:00 via Android
    可以看一下哈工大的形式语言与自动机
    crclz
        4
    crclz  
       2020-12-05 16:47:30 +08:00
    我是用着用着查资料就会了,遇到不会的去查。当然,查的是基本语法,不应该去查直接解决问题的答案。

    如果要集中高强度速成,可以看看 leetcode 有没有题。
    aijam
        5
    aijam  
       2020-12-05 16:50:34 +08:00
    image search "regex cheat sheet",随便看两张图片。然后 search "regex online tester",自己搞几个例子测试下,一个小时足够了吧。
    treblex
        6
    treblex  
       2020-12-05 17:07:56 +08:00   ❤️ 1
    推荐个正则可视化 挺有帮助的 https://regexper.com/#/%5Ehttps?:%5C/%5C/(.+%5C/)+.+(%5C.(gif%7Cpng%7Cjpg%7Cjpeg%7Cwebp%7Csvg%7Cpsd%7Cbmp%7Ctif))$/i

    平时写代码还是的靠搜索引擎
    whi147
        7
    whi147  
       2020-12-05 19:36:46 +08:00 via iPhone
    qt 例子中有个可视化的正则计算器,我用这个来推正则
    gyf304
        8
    gyf304  
       2020-12-05 19:44:40 +08:00
    正则是那种简单的直接写,复杂的得查的东西(关键是每个语言的 Regex 支持还不一样 Perl/JS/POSIX 都有些微妙的区别)。
    类似的还有 CSS,简单的直接用,复杂的只能查。
    CEBBCAT
        9
    CEBBCAT  
       2020-12-05 19:45:52 +08:00 via Android
    平时用到的正则都不太是通用业务,正则这玩意儿也没多难,对着在线手册看看规则就能写出来啊,不过是一些开头结尾、值域、重复之类的嘛

    咱们这行就是多练呗,实在不行就再进一步做笔记,加油⛽
    imn1
        10
    imn1  
       2020-12-05 19:50:24 +08:00
    实际就是短语法
    wzzzx
        11
    wzzzx  
       2020-12-05 23:56:48 +08:00
    知道这个是什么,用的时候能够快速找到答案就可以了。正则这东西又不是天天写,没必要。而且天天写都熟的不得了了好吧
    dvaknheo
        12
    dvaknheo  
       2020-12-06 10:03:19 +08:00
    我是看 PHP 手册的正则学会的,不过断言等高级部分还是没学会
    JasonLaw
        13
    JasonLaw  
       2020-12-06 10:19:24 +08:00
    最近看的一个视频:
    linvaux
        14
    linvaux  
       2020-12-06 11:44:19 +08:00
    不学,遇到问题就去百度,这玩意儿长时间不用根本记不住
    callmexiaodeng
        15
    callmexiaodeng  
       2020-12-06 13:49:19 +08:00
    没有学的必要 知道大概是个啥东西就行了
    persistz
        16
    persistz  
       2020-12-06 14:16:58 +08:00
    我觉得与其学会怎么写,不如学学哪些是可以用正则表示的。
    如果遇到了正则无法表示的内容,研究一周也是表达不出来的。
    Stlin
        17
    Stlin  
       2020-12-06 14:43:58 +08:00
    tinyRat
        18
    tinyRat  
       2020-12-06 15:43:54 +08:00 via iPhone
    https://regex101.com

    手把手用两次。
    namelosw
        19
    namelosw  
       2020-12-06 17:47:13 +08:00
    不学
    leoyzh97
        20
    leoyzh97  
       2020-12-06 18:15:56 +08:00 via Android
    推荐一本书,《正则指引》
    ob
        21
    ob  
       2020-12-06 19:14:29 +08:00
    借楼分享个 intellij-base 正则实时匹配插件:Regex Tool (收费),应该是对学习正则有点帮助。
    https://plugins.jetbrains.com/plugin/15433-regex-tool
    接受不了这个费用的可以找我拿优惠码。
    dfzj
        22
    dfzj  
       2020-12-06 19:27:40 +08:00
    排除法
    hytcrab
        23
    hytcrab  
       2020-12-06 23:39:17 +08:00
    先看下余晟的《正则指引》,之后可以再看看《精通正则表达式》,基本上就够日常用了。
    SekiBetu
        24
    SekiBetu  
       2020-12-07 05:53:59 +08:00
    学这个没有任何技术提升,还是用到再搜模板改改就行
    haitaotao
        25
    haitaotao  
       2020-12-07 10:31:15 +08:00   ❤️ 1
    说起来我周未在知乎上写一篇短文,用几条简单的规则推导出几乎所有正则模式,你可以参考一下

    https://zhuanlan.zhihu.com/p/332223083

    我的帐号因为推荐这篇文章还被 V2EX 降权了。
    lrvy
        26
    lrvy  
       2020-12-07 10:46:10 +08:00
    简单使用看《正则表达式 30 分钟入门教程》就够了,不过不要被标题误导,这篇文章边学边试需要几个小时。
    https://deerchao.cn/tutorials/regex/regex.htm
    acr0ss
        27
    acr0ss  
       2020-12-07 10:54:03 +08:00
    自认使用频繁,有些总结经验如下:

    1. 一定要有 pattern 匹配 /替换的意识。
    有意识使用,才能不断巩固不遗忘。

    2. 基础匹配语法就能覆盖 99% 场景。
    我对向后引用、零宽断言这类只是了解,但没熟练掌握,不影响使用。
    但是 **贪婪非贪婪 & 捕获组** 这两个感念一定得清楚

    基础匹配规则可以推荐: https://deerchao.cn/tutorials/regex/regex.htm

    多用多练!
    learningman
        28
    learningman  
       2020-12-07 11:59:41 +08:00
    @ob 这种小工具还做个订阅。。。
    ob
        29
    ob  
       2020-12-07 12:09:23 +08:00 via Android
    @learningman 你也可以做个免费的
    lindongwu11
        30
    lindongwu11  
       2020-12-07 13:10:37 +08:00
    我课上学过编译原理+自动机,写过能运行在神经网络上的专用的自动机,也用正则做过一年 NLP,我感觉「用正则」就是个文科知识,多练多看就会了,上班用的时候基本不会想到底层的自动机长啥样的。
    jonathanshi
        31
    jonathanshi  
       2020-12-07 13:21:46 +08:00
    learningman
        32
    learningman  
       2020-12-07 13:39:57 +08:00
    @ob 我说的是,这种小工具应该是买断
    ob
        33
    ob  
       2020-12-07 14:38:19 +08:00 via Android
    @learningman 目前开发这种插件工具,虽然卖的不多,但是国外用户的支持比例占的不少,作为用户角度,希望少花钱,或者直接买断更好,做为开发作者,私心确是希望自己的作品能创造更多收益,越多越好,所以,对于国人,虽然可能不是主要付费人群,但是能直接联系上我的,我都会很乐意给予折扣,甚至免费提供,我们都知道软件的成本是一次性的,但是私心就是想获得更多收益,就算收益已经远远超过成本,还是想要继续产生收益。定价在于作者,是否值得每年订阅在于用户,连接互相能接受的那部分用户就好。
    Lemeng
        34
    Lemeng  
       2020-12-07 14:49:56 +08:00
    看到有大神在腾讯授课,几百,专讲正则。好吧,遇到问题就百度吧,学不起,反正不是刚需
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2534 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 16:02 · PVG 00:02 · LAX 08:02 · JFK 11:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.