昨晚入睡前,搜 Twitter 上关于“正则”的推文,突然看到有个人发了一条推,问了一个关于正则表达式写法的问题,问题原文是:“匹配一个字符串,其由且仅由偶数个 0 和奇数个 1 组成,不论顺序。”,我当时很惊讶,正则还能拿来进行这种奇数个或者偶数个字符出现的次数的吗,看了一下回复,真的有不少人给出了他们的答案,其中有一条回复很简短,正则表达式如下:(?=^1*((01*){2})$)(^([01]{2})[01]$)。经过实测,结果是符合提问者要求的。这次我真的被震惊到,真的是天外有天人外有人,当我以为自己对正则的写法略懂还在沾沾自喜的时候,其他人更是随随便便就写了一条如果我不用工具就测试不出来是否正确的表达式。他到底是怎么想到的,甚至在我用工具进行测试,再对表达式的字符逐个进行分析,还是不觉得自己真理解这样的写法为什么就能达到提问者的要求。这让我的挫败感更加深了。
大家如果只看这个正则的问题,也都能很容易地写出来符合要求的表达式吗?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.