Regex Golf网址:https://alf.nu/RegexGolf
Regex Golf通关解答:Regex Golf通关解答-优快云博客
A man, a plan–You're allowed to cheat a little. Even in hard mode, words will be no longer than 13 characters.
回文串匹配。这对于程序员来说应该是基础题目了,在漫长的学习工作生涯中,相信每个人都实现过回文串的匹配。不过稍微可能有点出乎意料的是,如果仅使用正则表达式的话,这个问题其实是没有通用解的。好在题目提示中说明了,我们要匹配的串长度不超过13。于是我们可以构造出如下答案:^(.).?((.).?((.).?((.).?((.).?((.).?\11)?\9)?\7)?\5)?\3)?\1$。当然提示中还说了我们可以“Cheat”,那么我们在多Cheat一点,得到字符最少答案:^(.)[^p].*\1$。
Balance–This one is also impossible, but there's a finite number of test cases
括号匹配。提示中所说的“Impossible”是指仅使用基础的正则语法无法直接完成匹配。实际上,某些语言对正则扩展了“递归”的语法,在这种情况下,可以直接完成对合法括号对的匹配。本题中,最深的括号层次不超过七层,因此可以构造出答案:^(<(<(<(<(<(<(<>)*>)*>)*>)*>)*>)*>)*$。本题字符最少的答案为:.{37}|^(<(..(?!<.>$))*>)*$。