• 请不要在回答技术问题时复制粘贴 AI 生成的内容
byron
V2EX  ›  程序员

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

  •  1
     
  •   byron · Aug 26, 2019 · 14311 views
    This topic created in 2632 days ago, the information mentioned may be changed or developed.
    https://alf.nu/RegexGolf

    自己玩玩看,可以复习(锻炼)一下正则的很多语法及用法。
    94 replies  •  2019-08-28 13:06:59 +08:00
    nnnToTnnn
    nnnToTnnn
    Aug 26, 2019
    1
    正则我就没输过,我看看我能闯第几关
    p8YFk4f3E8SJ3aEv
    p8YFk4f3E8SJ3aEv
    Aug 26, 2019
    2
    学完就忘怎么办。。。?
    nnnToTnnn
    nnnToTnnn
    Aug 26, 2019❤️38
    3
    尝试了一下,好了,以上当我没说
    ipwx
    ipwx
    Aug 26, 2019
    4
    "i dont know regex but i know javascript bitches"
    JQZhang
    JQZhang
    Aug 26, 2019
    5
    不错,可以练习一下,学习学习
    Jex
    Jex
    Aug 26, 2019
    6
    ptrees
    ptrees
    Aug 26, 2019
    7
    我的工作就是写正则,基本上用不到很复杂的...最复杂恐怕就是匹配多层嵌套的 json 格式里的值了,很多时候直接放弃
    nznd
    nznd
    Aug 26, 2019
    8
    哇 我在这网站浪费了一下午 XSS PHP 都好有趣(然后打开 github 开始膜拜各种神奇操作
    soulzz
    soulzz
    Aug 26, 2019
    9
    <img src=" "/>
    我太难了 这题我不会啊
    lihongjie0209
    lihongjie0209
    Aug 26, 2019
    10
    @soulzz #9 afoot|catfoot|dogfoot|fanfoot|foody|foolery|foolish|fooster|footage|foothot|footle|footpad|footway|hotfoot|jawfoot|mafoo|nonfood|padfoot|prefool|sfoot|unfool
    rrfeng
    rrfeng
    Aug 26, 2019❤️7
    11
    这题不叫『写正则』,叫『找规律』
    Vegetable
    Vegetable
    Aug 26, 2019
    12
    @nnnToTnnn 3 分钟快男?
    Vegetable
    Vegetable
    Aug 26, 2019
    13
    (afoot|catfoot|dogfoot|fanfoot|foody|foolery|foolish|fooster|footage|foothot|footle|footpad|footway|hotfoot|jawfoot|mafoo|nonfood|padfoot|prefool|sfoot|unfool)
    annielong
    annielong
    Aug 26, 2019
    14
    最令人抓狂的就是正则,用起来真方便,写起来真难
    auin
    auin
    Aug 26, 2019
    15
    第一题就劝退,字符包含"foo"?
    honjow
    honjow
    Aug 26, 2019
    16
    下面的是不是排行?用的字符越少越排前面?可是有些 0 啊 1 啊 tm 都是作弊的吧。。。
    人家都说那么明白了
    i dont know regex but i know javascript bitches #滑稽
    AddictX
    AddictX
    Aug 26, 2019
    17
    @lihongjie0209 然而只需要填“ foo ”就 OK 了,就是不知道排行榜上 1 个字符的那群人是怎么弄的。
    nihaoaa
    nihaoaa
    Aug 26, 2019
    18
    人生已经很难了,为什么还要做这种题增加难度
    soulzz
    soulzz
    Aug 26, 2019
    19
    lihongjie0209
    lihongjie0209
    Aug 26, 2019
    20
    @soulzz #19 有限个数的直接枚举就好了, 还找规律干嘛。
    sm0king
    sm0king
    Aug 26, 2019
    21
    fo{2} ??
    arrow8899
    arrow8899
    Aug 26, 2019
    22
    大家来找茬(文字版)??
    junan008
    junan008
    Aug 26, 2019
    23
    \S?foo\S?
    honjow
    honjow
    Aug 26, 2019
    24
    @AddictX 作弊啊。还有 0 的呢
    AddictX
    AddictX
    Aug 26, 2019❤️2
    25
    @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
    canbingzt
    Aug 26, 2019
    26
    @soulzz .*貌似可以不要,foo 就行
    quadrapop
    quadrapop
    Aug 26, 2019
    27
    3 个全对到下一关?
    shwomen1234fs
    shwomen1234fs
    Aug 26, 2019
    28
    @soulzz 正则判断不包含 abba 类型的字符串 ^(?!.*?(.)(.)\2\1)
    soulzz
    soulzz
    Aug 26, 2019
    29
    @shwomen1234fs 大佬 nb
    我卡在正则表达式取反了
    atx
    atx
    Aug 26, 2019
    30
    ^(foo|fan|dog|cat|afo|hot|jaw|maf|non|pad|pre|sf|unfoo)
    qqq8724
    qqq8724
    Aug 26, 2019
    31
    @AddictX (.{3}).*\1 少了一位 hhh
    honjow
    honjow
    Aug 26, 2019
    32
    质数那个咋搞 ^(xx+?)\1+$能匹配非质数(也就是右边),那么怎么取反?
    AX5N
    AX5N
    Aug 26, 2019❤️2
    33
    @AddictX
    Backrefs : (...).*\1
    AddictX
    AddictX
    Aug 26, 2019
    34
    @AX5N 卧槽,这是真没想到。。。
    luzemin
    luzemin
    Aug 26, 2019
    35
    题还没看完就 timeout 了
    monkeyblog
    monkeyblog
    Aug 26, 2019
    36
    \w*(foo)\w* 已过 想问下 V2EX 怎么发图片?必须先把图片上传个服务器?不能上传本地的?
    Biwood
    Biwood
    Aug 26, 2019
    37
    @qqq8724 我也在质数这里卡了好久,最开始我以为规律是质数,但是看到 2 这个数字脑抽一下否定了质数规律。
    刚刚看到你的回复有确认了一下确实是质数,按照质数的原理,这个题几分钟就解出来了。
    提示:借鉴 abba 那道题即可。
    zackwu
    zackwu
    Aug 26, 2019
    38
    有趣,正则好难
    w99wen
    w99wen
    Aug 26, 2019
    39
    foo
    stcasshern
    stcasshern
    Aug 26, 2019
    40
    前五题:3 2 3 8 12,感觉很多取巧的方式。。。
    aliipay
    aliipay
    Aug 26, 2019
    41
    @AddictX 自己 post 数据,服务器没校验结果
    byron
    byron
    OP
    Aug 27, 2019
    42
    @honjow 负先行断言
    byron
    byron
    OP
    Aug 27, 2019
    43
    @stcasshern 第五题可以 9
    byron
    byron
    OP
    Aug 27, 2019
    44
    @rrfeng 正则不就是找到规律然后匹配出来么-_-|||
    byron
    byron
    OP
    Aug 27, 2019
    45
    我解到「 Triples 」,现在想砸键盘。
    有 Cheat 吗?
    hackshen
    hackshen
    Aug 27, 2019
    46
    找规律中...
    stcasshern
    stcasshern
    Aug 27, 2019
    47
    @byron 我觉得这个题目重点在于“找规律”而非正则实现,而现实中用到正则是已经知道规律或者规则,再用正则实现。
    qqq8724
    qqq8724
    Aug 27, 2019
    48
    @Biwood 老哥 回错人了吧~
    jiejiss
    jiejiss
    Aug 27, 2019❤️1
    49
    @byron #45 ^([0369]|[258][0369]*[147]|([147]|[258][0369]*[258])([0369]|[147][0369]*[258])*([258]|[147][0369]*[147]))*$

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

    @honjow 37 楼是回复给你的,不知道你还有没有继续,我在 Order 这一题上又卡住了。
    AddictX
    AddictX
    Aug 27, 2019
    55
    @byron
    Triples: 00($|3|6|9|12|15)|4.2|.1.+4|55|.17
    可进排行榜。
    Removable
    Removable
    Aug 27, 2019
    56
    @AddictX #33 (...).*\1 这样就行了
    hjq98765
    hjq98765
    Aug 27, 2019
    57
    好玩好玩,我试试
    Youngxj
    Youngxj
    Aug 27, 2019
    58
    只会两题
    index90
    index90
    Aug 27, 2019
    59
    排行榜里用一个字符过关的是怎么回事?
    hjq98765
    hjq98765
    Aug 27, 2019
    60
    @soulzz #9 原文:“<img src=" "/>我太难了 这题我不会啊”
    ======
    回复:否定匹配右边一组 abba、alla、assa 这种模式
    a494836960
    a494836960
    Aug 27, 2019
    61
    感觉更像找规则,,,写正则并不难
    byron
    byron
    OP
    Aug 27, 2019
    62
    @AddictX 哈哈,果真有 Cheat。
    byron
    byron
    OP
    Aug 27, 2019
    63
    @Biwood 这题有 Cheat,左右长度不一样^_^
    daguaochengtang
    daguaochengtang
    Aug 27, 2019
    64
    我第 3 提就不会了,考零宽断言或者单词边界
    qq316107934
    qq316107934
    Aug 27, 2019
    65
    做到怀疑人生,regex 能匹配回文串吗?
    qq316107934
    qq316107934
    Aug 27, 2019
    66
    Four 这道题,(.).\1.\1.\1 12 个字符,还能缩到 11 个吗,表示怀疑
    jsq2627
    jsq2627
    PRO
    Aug 27, 2019
    67
    @qq316107934 #66 (.)(.\1){3}
    byron
    byron
    OP
    Aug 27, 2019
    68
    @nikolausliu 单词边界就是语法,查一下就好了。
    gerorim
    gerorim
    Aug 27, 2019❤️2
    69
    @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
    bigtwo
    bigtwo
    Aug 27, 2019
    71
    @ptrees 这么牛 b 吗,json 也用正则取,对于我来说不敢想更不敢做,json 类都是套用第三方工具取
    aaronchou0
    aaronchou0
    Aug 27, 2019
    72
    这个跟正则关系不大吧,就是找规律
    ahsjs
    ahsjs
    Aug 27, 2019
    73
    第七题 ^(.)(.).*\2\1$ 这个 14 个字符 13 个字符怎么破
    byron
    byron
    OP
    Aug 27, 2019
    74
    @ahsjs You're allowed to cheat a little.

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

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

    求教 这为啥不行?好像跟我学的不太一样
    opsarno
    opsarno
    Aug 28, 2019
    90
    老夫来试一试。
    opsarno
    opsarno
    Aug 28, 2019
    91
    对不起,打扰了。
    byron
    byron
    OP
    Aug 28, 2019
    92
    @AscenZ 看上面大大的提示,不允许使用「$」。
    c0011
    c0011
    Aug 28, 2019
    93
    第三题怎么做?
    Chenamy2017
    Chenamy2017
    Aug 28, 2019
    94
    第一题看不懂,能看第二题吗
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   3051 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 148ms · UTC 10:19 · PVG 18:19 · LAX 02:19 · JFK 05:19
    ♥ Do have faith in what you're doing.