发现一个正则闯关的网站,可以玩一下 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
byron
V2EX    程序员

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

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

    自己玩玩看,可以复习(锻炼)一下正则的很多语法及用法。
    94 条回复    2019-08-28 13:06:59 +08:00
    nnnToTnnn
        1
    nnnToTnnn  
       2019-08-26 14:41:03 +08:00
    正则我就没输过,我看看我能闯第几关
    p8YFk4f3E8SJ3aEv
        2
    p8YFk4f3E8SJ3aEv  
       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
    我卡在正则表达式取反了
    atx
        30
    atx  
       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 那道题即可。
    zackwu
        38
    zackwu  
       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
    bigtwo
        71
    bigtwo  
       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
    好难
    lightzh
        89
    lightzh  
       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     Solana     5888 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 35ms UTC 06:18 PVG 14:18 LAX 23:18 JFK 02:18
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86