美文网首页
正则-回文

正则-回文

作者: RossH | 来源:发表于2019-04-16 17:19 被阅读0次

故事的开始在于我今天不小心点开了某微信群,又恰巧看到了有人问,正则表达式怎么匹配回文?一开始我是这样的👇


内心OS:现在不用代码判断回文,要用正则表达式来匹配了吗?我要跟不上了呀。正则表达式怎么判断前后字符串呢?正则表达式没有类似于循环的功能,怎么匹配任意长度的回文呢?
压抑不住内心的好奇,跑去各种搜索。但结果都是配合代码完成的,并没有纯粹依赖正则表达式就可以完成。不死心的我果断Google。找到如下回答

简而言之,就是正则表达式可以匹配所有小于某个有限固定长度的回文,但无法接受所有回文(匹配任意长度的回文)
于是乎我就回到群里试图说明这是不可能完成的。但猿友非常笃定是可以完成的,随后丢了个链接,说是这网站上的第六题。我就又懵了。既然出了题就应该是可以解的,但我stack overflow上看到的回答又很合理。现在只能是实践出真知了。
抱着学习的态度,我打开了猿友提供的链接,并一路做到了第六题,终于看到了罪魁祸首
罪魁祸首
Emmm......看到题目前面很明显的Abba,加上我也试了下,得出结论是,这题只需要识别出回文形式为abba并且不匹配存在回文的字符串就行。也就是说,是有固定有限长度的。
估计是猿友没有注意审题,或者是想拓展下吧。
最后,我把我最终结果发群里,顺便再说了下正则表达式无法匹配任意长度的回文哈哈。
如果有其他猿友看到本文,然后知道是可以完成的,麻烦批评下我,顺便给我普及下知识。谢谢🙏
最终结果
这里简单解释下题目答案^((?!(\w)(\w)\3\2).)*$,如有错漏,麻烦指正。
(\w)匹配字母、数字、下划线。等价于'[A-Za-z0-9_]'。并且获取这一匹配。
\2匹配第二个获取的内容。举下例子:(\w)(\w)\2\1匹配ABBA,第一个(\w)获取字母A,且这是第一个获取到的内容,然后\1匹配这第一个获取到的内容A。以此类推,(\w)(\w)(\w)(\w)\4\3\2\1匹配ABCDDCBA。
?!不匹配其后面跟着的pattern。

文中涉及链接

相关文章

  • 正则-回文

    故事的开始在于我今天不小心点开了某微信群,又恰巧看到了有人问,正则表达式怎么匹配回文?一开始我是这样的? 文中涉及...

  • JSON表示

    点击回文章 点击回文章

  • 回文数最优解

    回文数 非回文数 JAVA 解法

  • 用正则判断回文字符串

    写于2015年3月26日,最新修订于2017年5月29日,可能已过时,请谨慎参考。 判断一个字符串是否是回文字符串...

  • leecode刷题(31) -- 回文数

    leecode刷题(31) -- 回文数 回文数 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右...

  • 我的回文词例作

    回文词:始见北宋,这与宋词创作繁荣有关系。元明回文词极少。此后清词继起,回文词可与宋代匹敌。下面是本人回文式填词数...

  • 判断回文/找到所有回文

    0X00 总结 判断回文 找到所有回文 O()

  • Leetcode(9) - 回文数 - java版

    Leetcode(9) - 回文数 - java版 题目 难度: 简单 判断一个整数是否是回文数。回文数是指正序...

  • 第六章第二十六题(回文素数)(Palindromic prime

    **6.26(回文素数)回文素数是指一个数同时为素数和回文数。例如:131是一个素数,同时也是一个回文素数。数学3...

  • 关于回文问题

    回文问题的解法:双指针,栈,reverse 1. 409. 最长回文串[✔]2. 125. 验证回文串[✔]3. ...

网友评论

      本文标题:正则-回文

      本文链接:https://www.haomeiwen.com/subject/qavbwqtx.html