V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
byron
V2EX  ›  程序员

发现一个正则闯关的网站,可以玩一下

  •  1
     
  •   byron · 2019-08-26 14:32:22 +08:00 · 12758 次点击
    这是一个创建于 1948 天前的主题,其中的信息可能已经有所发展或是发生改变。
    https://alf.nu/RegexGolf

    自己玩玩看,可以复习(锻炼)一下正则的很多语法及用法。
    94 条回复    2019-08-28 13:06:59 +08:00
    nnnToTnnn
        1
    nnnToTnnn  
       2019-08-26 14:41:03 +08:00
    正则我就没输过,我看看我能闯第几关
    f056917
        2
    f056917  
       2019-08-26 14:41:05 +08:00
    学完就忘怎么办。。。?
    nnnToTnnn
        3
    nnnToTnnn  
       2019-08-26 14:43:21 +08:00   ❤️ 38
    尝试了一下,好了,以上当我没说
    ipwx
        4
    ipwx  
       2019-08-26 14:44:21 +08:00
    "i dont know regex but i know javascript bitches"
    JQZhang
        5
    JQZhang  
       2019-08-26 14:55:06 +08:00
    不错,可以练习一下,学习学习
    Jex
        6
    Jex  
       2019-08-26 15:00:50 +08:00
    ptrees
        7
    ptrees  
       2019-08-26 15:14:35 +08:00
    我的工作就是写正则,基本上用不到很复杂的...最复杂恐怕就是匹配多层嵌套的 json 格式里的值了,很多时候直接放弃
    nznd
        8
    nznd  
       2019-08-26 16:24:39 +08:00
    哇 我在这网站浪费了一下午 XSS PHP 都好有趣(然后打开 github 开始膜拜各种神奇操作
    soulzz
        9
    soulzz  
       2019-08-26 16:47:02 +08:00
    <img src=" "/>
    我太难了 这题我不会啊
    lihongjie0209
        10
    lihongjie0209  
       2019-08-26 16:51:39 +08:00
    @soulzz #9 afoot|catfoot|dogfoot|fanfoot|foody|foolery|foolish|fooster|footage|foothot|footle|footpad|footway|hotfoot|jawfoot|mafoo|nonfood|padfoot|prefool|sfoot|unfool
    rrfeng
        11
    rrfeng  
       2019-08-26 16:54:55 +08:00   ❤️ 7
    这题不叫『写正则』,叫『找规律』
    Vegetable
        12
    Vegetable  
       2019-08-26 16:56:27 +08:00
    @nnnToTnnn 3 分钟快男?
    Vegetable
        13
    Vegetable  
       2019-08-26 16:58:36 +08:00
    (afoot|catfoot|dogfoot|fanfoot|foody|foolery|foolish|fooster|footage|foothot|footle|footpad|footway|hotfoot|jawfoot|mafoo|nonfood|padfoot|prefool|sfoot|unfool)
    annielong
        14
    annielong  
       2019-08-26 16:58:41 +08:00
    最令人抓狂的就是正则,用起来真方便,写起来真难
    liuxey
        15
    liuxey  
       2019-08-26 16:59:05 +08:00
    第一题就劝退,字符包含"foo"?
    honjow
        16
    honjow  
       2019-08-26 17:02:20 +08:00
    下面的是不是排行?用的字符越少越排前面?可是有些 0 啊 1 啊 tm 都是作弊的吧。。。
    人家都说那么明白了
    i dont know regex but i know javascript bitches #滑稽
    AddictX
        17
    AddictX  
       2019-08-26 17:04:17 +08:00
    @lihongjie0209 然而只需要填“ foo ”就 OK 了,就是不知道排行榜上 1 个字符的那群人是怎么弄的。
    nihaoaa
        18
    nihaoaa  
       2019-08-26 17:04:49 +08:00
    人生已经很难了,为什么还要做这种题增加难度
    soulzz
        19
    soulzz  
       2019-08-26 17:05:31 +08:00
    lihongjie0209
        20
    lihongjie0209  
       2019-08-26 17:08:13 +08:00
    @soulzz #19 有限个数的直接枚举就好了, 还找规律干嘛。
    sm0king
        21
    sm0king  
       2019-08-26 17:08:14 +08:00
    fo{2} ??
    arrow8899
        22
    arrow8899  
       2019-08-26 17:15:41 +08:00
    大家来找茬(文字版)??
    junan008
        23
    junan008  
       2019-08-26 17:18:44 +08:00
    \S?foo\S?
    honjow
        24
    honjow  
       2019-08-26 17:21:39 +08:00
    @AddictX 作弊啊。还有 0 的呢
    AddictX
        25
    AddictX  
       2019-08-26 17:25:41 +08:00   ❤️ 2
    @honjow 发现了,这回理解“ i dont know regex but i know javascript bitches ”的意思了。。。

    Warmup: foo
    Anchors: k$
    it never ends: fu\b
    Ranges: ^[a-f]+$
    Backrefs: (\w{3}).*\1

    不玩了,玩了一下午,就玩出了这点。Backrefs 还死活压不到 9 个字符,进不去排行榜。。。
    canbingzt
        26
    canbingzt  
       2019-08-26 17:32:10 +08:00
    @soulzz .*貌似可以不要,foo 就行
    quadrapop
        27
    quadrapop  
       2019-08-26 17:41:08 +08:00
    3 个全对到下一关?
    shwomen1234fs
        28
    shwomen1234fs  
       2019-08-26 17:41:16 +08:00
    @soulzz 正则判断不包含 abba 类型的字符串 ^(?!.*?(.)(.)\2\1)
    soulzz
        29
    soulzz  
       2019-08-26 17:45:12 +08:00
    @shwomen1234fs 大佬 nb
    我卡在正则表达式取反了
    lc1450
        30
    lc1450  
       2019-08-26 17:45:58 +08:00
    ^(foo|fan|dog|cat|afo|hot|jaw|maf|non|pad|pre|sf|unfoo)
    qqq8724
        31
    qqq8724  
       2019-08-26 17:52:02 +08:00
    @AddictX (.{3}).*\1 少了一位 hhh
    honjow
        32
    honjow  
       2019-08-26 17:54:19 +08:00
    质数那个咋搞 ^(xx+?)\1+$能匹配非质数(也就是右边),那么怎么取反?
    AX5N
        33
    AX5N  
       2019-08-26 17:56:08 +08:00   ❤️ 2
    @AddictX
    Backrefs : (...).*\1
    AddictX
        34
    AddictX  
       2019-08-26 17:57:47 +08:00
    @AX5N 卧槽,这是真没想到。。。
    luzemin
        35
    luzemin  
       2019-08-26 18:03:16 +08:00
    题还没看完就 timeout 了
    monkeyblog
        36
    monkeyblog  
       2019-08-26 18:12:58 +08:00
    \w*(foo)\w* 已过 想问下 V2EX 怎么发图片?必须先把图片上传个服务器?不能上传本地的?
    Biwood
        37
    Biwood  
       2019-08-26 18:13:56 +08:00
    @qqq8724 我也在质数这里卡了好久,最开始我以为规律是质数,但是看到 2 这个数字脑抽一下否定了质数规律。
    刚刚看到你的回复有确认了一下确实是质数,按照质数的原理,这个题几分钟就解出来了。
    提示:借鉴 abba 那道题即可。
    keith1126
        38
    keith1126  
       2019-08-26 18:23:46 +08:00
    有趣,正则好难
    w99wen
        39
    w99wen  
       2019-08-26 19:22:34 +08:00
    foo
    stcasshern
        40
    stcasshern  
       2019-08-26 19:34:38 +08:00
    前五题:3 2 3 8 12,感觉很多取巧的方式。。。
    aliipay
        41
    aliipay  
       2019-08-26 19:54:57 +08:00
    @AddictX 自己 post 数据,服务器没校验结果
    byron
        42
    byron  
    OP
       2019-08-27 08:42:37 +08:00
    @honjow 负先行断言
    byron
        43
    byron  
    OP
       2019-08-27 08:43:38 +08:00
    @stcasshern 第五题可以 9
    byron
        44
    byron  
    OP
       2019-08-27 08:44:35 +08:00
    @rrfeng 正则不就是找到规律然后匹配出来么-_-|||
    byron
        45
    byron  
    OP
       2019-08-27 08:55:29 +08:00
    我解到「 Triples 」,现在想砸键盘。
    有 Cheat 吗?
    hackshen
        46
    hackshen  
       2019-08-27 09:09:56 +08:00
    找规律中...
    stcasshern
        47
    stcasshern  
       2019-08-27 09:12:09 +08:00
    @byron 我觉得这个题目重点在于“找规律”而非正则实现,而现实中用到正则是已经知道规律或者规则,再用正则实现。
    qqq8724
        48
    qqq8724  
       2019-08-27 09:12:38 +08:00
    @Biwood 老哥 回错人了吧~
    jiejiss
        49
    jiejiss  
       2019-08-27 09:26:33 +08:00   ❤️ 1
    @byron #45 ^([0369]|[258][0369]*[147]|([147]|[258][0369]*[258])([0369]|[147][0369]*[258])*([258]|[147][0369]*[147]))*$

    DFA 转 regexp,可匹配所有 3 的正整数倍
    Heanes
        50
    Heanes  
       2019-08-27 09:27:24 +08:00
    正则总在学总在忘。。。
    leorealman
        51
    leorealman  
       2019-08-27 09:27:24 +08:00
    .* 直接梭哈
    sadfQED2
        52
    sadfQED2  
       2019-08-27 09:35:24 +08:00
    第一题全退,太难了。。。。回来看了回复才知道,原来都有 foo 啊
    ahsjs
        53
    ahsjs  
       2019-08-27 10:02:46 +08:00
    第三题 u\b 最简 3 个字符的尼玛 2 个字符怎么弄的
    Biwood
        54
    Biwood  
       2019-08-27 10:13:57 +08:00
    @qqq8724 哈哈,你俩相邻楼层,应该是我手误点错了。

    @honjow 37 楼是回复给你的,不知道你还有没有继续,我在 Order 这一题上又卡住了。
    AddictX
        55
    AddictX  
       2019-08-27 10:22:51 +08:00
    @byron
    Triples: 00($|3|6|9|12|15)|4.2|.1.+4|55|.17
    可进排行榜。
    Removable
        56
    Removable  
       2019-08-27 10:34:15 +08:00
    @AddictX #33 (...).*\1 这样就行了
    hjq98765
        57
    hjq98765  
       2019-08-27 10:36:03 +08:00
    好玩好玩,我试试
    Youngxj
        58
    Youngxj  
       2019-08-27 10:41:39 +08:00
    只会两题
    index90
        59
    index90  
       2019-08-27 10:43:50 +08:00
    排行榜里用一个字符过关的是怎么回事?
    hjq98765
        60
    hjq98765  
       2019-08-27 10:46:38 +08:00
    @soulzz #9 原文:“<img src=" "/>我太难了 这题我不会啊”
    ======
    回复:否定匹配右边一组 abba、alla、assa 这种模式
    a494836960
        61
    a494836960  
       2019-08-27 10:55:44 +08:00
    感觉更像找规则,,,写正则并不难
    byron
        62
    byron  
    OP
       2019-08-27 11:07:38 +08:00
    @AddictX 哈哈,果真有 Cheat。
    byron
        63
    byron  
    OP
       2019-08-27 11:08:52 +08:00
    @Biwood 这题有 Cheat,左右长度不一样^_^
    daguaochengtang
        64
    daguaochengtang  
       2019-08-27 11:11:16 +08:00
    我第 3 提就不会了,考零宽断言或者单词边界
    qq316107934
        65
    qq316107934  
       2019-08-27 11:28:15 +08:00
    做到怀疑人生,regex 能匹配回文串吗?
    qq316107934
        66
    qq316107934  
       2019-08-27 11:47:04 +08:00
    Four 这道题,(.).\1.\1.\1 12 个字符,还能缩到 11 个吗,表示怀疑
    jsq2627
        67
    jsq2627  
       2019-08-27 11:56:11 +08:00
    @qq316107934 #66 (.)(.\1){3}
    byron
        68
    byron  
    OP
       2019-08-27 12:36:02 +08:00
    @nikolausliu 单词边界就是语法,查一下就好了。
    gerorim
        69
    gerorim  
       2019-08-27 12:50:08 +08:00   ❤️ 2
    @honjow #32

    and none of these …
    ✔xxxx (no match)
    ✔xxxxxx (no match)
    ✔xxxxxxxx (no match)
    ✔xxxxxxxxx (no match)
    ✔xxxxxxxxxx (no match)
    ✔xxxxxxxxxxxx (no match)
    ✔xxxxxxxxxxxxxx (no match)
    ✔xxxxxxxxxxxxxxx (no match)
    ✔xxxxxxxxxxxxxxxx (no match)
    ✔xx …(18)… xx (no match)
    ✔xx …(20)… xx (no match)
    ✔xx …(21)… xx (no match)
    ✔xx …(22)… xx (no match)
    ✔xx …(24)… xx (no match)
    ✔xx …(25)… xx (no match)
    ✔xx …(26)… xx (no match)
    ✔xx …(27)… xx (no match)
    ✔xx …(28)… xx (no match)
    ✔xx …(30)… xx (no match)
    ✔xx …(32)… xx (no match)

    ^(?!(xx+)\1+$)

    https://sm.ms/image/E1Ppn3IyQJBC9HZ

    注意上面的粉红色光标,断言后面的 xx...xx 串不能被 2 个以上的 xx+ 组成的重复串完全匹配,其中 xx+ 视作因数(数值>1 ),而反引用使得它不能被本身匹配。
    联系质数的数学定义:大于 1 的自然数中,除了 1 和它本身以外不再有其他因数的自然数。

    从上面的粉红光标处出发,再加两个 xx (确保自然数大于 1 )即为答案

    Match all of these …
    ✔xx
    ✔xxx
    ✔xxxxx
    ✔xxxxxxx
    ✔xxxxxxxxxxx
    ✔xxxxxxxxxxxxx
    ✔xxxxxxxxxxxxxxxxx
    ✔xxx …(18)… xx
    ✔xxx …(22)… xx
    ✔xxx …(28)… xx
    ✔xxx …(30)… xx
    ✔xxx …(36)… xx
    ✔xxx …(40)… xx
    ✔xxx …(42)… xx
    ✔xxx …(46)… xx
    ✔xxx …(52)… xx
    ✔xxx …(58)… xx
    ✔xxx …(60)… xx
    ✔xxx …(66)… xx
    ✔xxx …(70)… xx

    ^(?!(xx+)\1+$)xx
    gerorim
        70
    gerorim  
       2019-08-27 12:53:27 +08:00
    cnyang
        71
    cnyang  
       2019-08-27 12:57:45 +08:00
    @ptrees 这么牛 b 吗,json 也用正则取,对于我来说不敢想更不敢做,json 类都是套用第三方工具取
    aaronchou0
        72
    aaronchou0  
       2019-08-27 13:38:56 +08:00
    这个跟正则关系不大吧,就是找规律
    ahsjs
        73
    ahsjs  
       2019-08-27 13:57:04 +08:00
    第七题 ^(.)(.).*\2\1$ 这个 14 个字符 13 个字符怎么破
    byron
        74
    byron  
    OP
       2019-08-27 14:31:12 +08:00
    @ahsjs You're allowed to cheat a little.

    左边没 p
    silentsee
        75
    silentsee  
       2019-08-27 14:40:21 +08:00
    这个把正则里的元字符,范围,非,分组,负向引用,零宽断言,都练习了一遍,挺好的
    silentsee
        76
    silentsee  
       2019-08-27 14:41:15 +08:00
    @ahsjs ^(?!(.)+\1)|ef
    HGladIator
        77
    HGladIator  
       2019-08-27 14:51:48 +08:00
    GitHub 一堆这个网站的答案,
    rocketman13
        78
    rocketman13  
       2019-08-27 15:26:08 +08:00
    @byron 第五题的 9 怎么写呀
    5200
        79
    5200  
       2019-08-27 15:32:27 +08:00
    @ahsjs #73 ^(.)[^p].*\1$ 不会被打吧

    @rocketman13 #78 (...).*\1
    cuiqiangtj
        80
    cuiqiangtj  
       2019-08-27 15:38:31 +08:00
    Long count (15 题)这题最简单,直接吧左边的贴上去就过关---哈哈
    asAnotherJack
        81
    asAnotherJack  
       2019-08-27 15:42:20 +08:00
    @annielong #14 有思路了写起来还好,最抓狂的是读别人写的正则
    rocketman13
        82
    rocketman13  
       2019-08-27 16:02:54 +08:00
    @shwomen1234fs ^(?!.*?(.)(.)\2\1)为什么最前面要加^
    rocketman13
        83
    rocketman13  
       2019-08-27 16:07:03 +08:00
    @5200 原来[a-z]{3}换成(...)
    freewind
        84
    freewind  
       2019-08-27 17:18:21 +08:00
    Abba 怎么到 14 的 ^(?!.*(.)(.)\2\1)
    anyuhanfei
        85
    anyuhanfei  
       2019-08-27 17:58:51 +08:00
    真好玩,真难
    fengma
        86
    fengma  
       2019-08-27 18:10:39 +08:00
    @soulzz ^(?!.*(.)(.)\2\1)
    jlhxxxx
        87
    jlhxxxx  
       2019-08-28 09:01:34 +08:00
    我也觉得这叫找规律,头秃头秃
    chennqqi
        88
    chennqqi  
       2019-08-28 10:01:05 +08:00
    好难
    AscenZ
        89
    AscenZ  
       2019-08-28 10:24:25 +08:00
    ![[email protected]]( https://i.loli.net/2019/08/28/gh1NRnIw46iAWjZ.png)

    求教 这为啥不行?好像跟我学的不太一样
    opsarno
        90
    opsarno  
       2019-08-28 11:32:43 +08:00
    老夫来试一试。
    opsarno
        91
    opsarno  
       2019-08-28 11:51:09 +08:00
    对不起,打扰了。
    byron
        92
    byron  
    OP
       2019-08-28 12:34:10 +08:00
    @AscenZ 看上面大大的提示,不允许使用「$」。
    c0011
        93
    c0011  
       2019-08-28 12:55:50 +08:00
    第三题怎么做?
    Chenamy2017
        94
    Chenamy2017  
       2019-08-28 13:06:59 +08:00
    第一题看不懂,能看第二题吗
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2535 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 15:44 · PVG 23:44 · LAX 07:44 · JFK 10:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.