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

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

  •  1
     
  •   byron · 154 天前 · 9102 次点击
    这是一个创建于 154 天前的主题,其中的信息可能已经有所发展或是发生改变。
    https://alf.nu/RegexGolf

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

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

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

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

    求教 这为啥不行?好像跟我学的不太一样
    opsarno
        90
    opsarno   152 天前
    老夫来试一试。
    opsarno
        91
    opsarno   152 天前
    对不起,打扰了。
    byron
        92
    byron   152 天前
    @AscenZ 看上面大大的提示,不允许使用「$」。
    c0011
        93
    c0011   152 天前
    第三题怎么做?
    Chenamy2017
        94
    Chenamy2017   152 天前
    第一题看不懂,能看第二题吗
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   747 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 33ms · UTC 22:23 · PVG 06:23 · LAX 14:23 · JFK 17:23
    ♥ Do have faith in what you're doing.