热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

正则表达式的问题:所有不重复的数位组成的串

如题,我看到一个答案(?!.*?(\d).*?\1.*?$)\d+,试了试,正确。哪位大神可以给讲解一下呢?
如题,我看到一个答案(?!.*?(\d).*?\1.*?$)\d+,试了试,正确。哪位大神可以给讲解一下呢?

14 个解决方案

#1


哎。。。 。。。

#2


?! epr是断言后面不是epr,而epr是.*?(\d).*?\1.*?$,这句话就是查找重复的串
(\d).*?是一个数字串,\1.*?是再跟任意个数字串,\1的意思是引用前面的匹配组,从0开始,但是\0是引用整个串本身。
至于为什么要用*?你可以自己在好好琢磨下。

前面为什么加个.*?,我在琢磨下,也坐等其他人回答。

#3


主要牵涉到正则的回溯过程的细节。
不建议深究。正则太复杂了非常难理解和维护的。

这里是判断yyyy-mm-dd这种格式的,基本上把闰年和2月等的情况都考虑进去了,我记得是远古之前在本论坛看见的。

^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29))$
你难道也想要人解释?

#4


正则很强,但也不是万能的。

#5


引用 2 楼 bbs2241 的回复:
?! epr是断言后面不是epr,而epr是.*?(\d).*?\1.*?$,这句话就是查找重复的串
(\d).*?是一个数字串,\1.*?是再跟任意个数字串,\1的意思是引用前面的匹配组,从0开始,但是\0是引用整个串本身。
至于为什么要用*?你可以自己在好好琢磨下。

前面为什么加个.*?,我在琢磨下,也坐等其他人回答。
对不起,我还是没能理解\1.*?的作用?我单独试这个表达式,并没有匹配成功“再跟任意个数字”这一特性。

#6


呼叫正则大神们来科普。。。 。。。

#7


正则表达式速查 正则表达式举例 正则表达式学习 (4页A4纸) http://download.csdn.net/detail/zhao4zhong1/1808549

#8


引用 6 楼 Liu_peiqi 的回复:
呼叫正则大神们来科普。。。 。。。


应该叫做引用匹配组,比如123abcabc456串,使用正则[1-9]*(abc)\1[1-9]*
那么(abc)就是匹配组1,在正则中用\1表示(注意括号),那匹配组0是什么呢?就是整个串123abcabc456

#9


http://download.csdn.net/detail/xuzhouweihao/7407835

30min让你学会正则表达式,很好的一个教材。

#10


http://blog.csdn.net/taodm/article/details/28680243
好吧,我在博客里专门解释了一下。

#11


引用 10 楼 taodm 的回复:
http://blog.csdn.net/taodm/article/details/28680243
好吧,我在博客里专门解释了一下。
你太棒了

#12


正则表达式不是万能的;
有限状态自动机才是万能的。

#13


引用 12 楼 zhao4zhong1 的回复:
正则表达式不是万能的;
有限状态自动机才是万能的。
AC自动状态机?最近刚好在学

#14


\1.*?, 前面的\1好理解,是引用第一个分组,表示出现了两个相同的字符串,后面的.*?是指匹配任意字符的惰性模式,对于本表达式,这样做可以减少错误匹配回溯的次数,加快匹配效率

推荐阅读
  • 本文详细介绍了如何使用Python的re库进行正则表达式匹配,特别是针对URL中的特定参数提取。适合初学者理解和应用。 ... [详细]
  • 百度搜索结果链接提取工具 UrlGetter V1.43
    该工具专为获取百度搜索引擎的结果页面中的网址链接而设计,能够解析并转换为原始URL。通过正则表达式匹配技术,精准提取网页链接,并提供详细的使用说明和下载资源。 ... [详细]
  • 深入解析Nginx中的Location指令及其属性
    本文将详细探讨Nginx配置文件中关键的location指令,包括其三种匹配方式(精准匹配、普通匹配和正则匹配),以及如何在实际应用中灵活运用这些匹配规则。此外,还将介绍location下的重要子元素如root、alias和proxy_pass,并解释相关参数的使用方法。 ... [详细]
  • 本文详细介绍如何使用arm-eabi-gdb调试Android平台上的C/C++程序。通过具体步骤和实用技巧,帮助开发者更高效地进行调试工作。 ... [详细]
  • Navicat Premium 15 安装指南及数据库连接配置
    本文详细介绍 Navicat Premium 15 的安装步骤及其对多种数据库(如 MySQL 和 Oracle)的支持,帮助用户顺利完成软件的安装与激活。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • PyCharm下载与安装指南
    本文详细介绍如何从官方渠道下载并安装PyCharm集成开发环境(IDE),涵盖Windows、macOS和Linux系统,同时提供详细的安装步骤及配置建议。 ... [详细]
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • 本文详细介绍了如何解决Uploadify插件在Internet Explorer(IE)9和10版本中遇到的点击失效及JQuery运行时错误问题。通过修改相关JavaScript代码,确保上传功能在不同浏览器环境中的一致性和稳定性。 ... [详细]
  • 本文介绍了如何利用JavaScript或jQuery来判断网页中的文本框是否处于焦点状态,以及如何检测鼠标是否悬停在指定的HTML元素上。 ... [详细]
  • 本文详细介绍了如何使用PHP检测AJAX请求,通过分析预定义服务器变量来判断请求是否来自XMLHttpRequest。此方法简单实用,适用于各种Web开发场景。 ... [详细]
  • 本文详细介绍了如何在BackTrack 5中配置和启动SSH服务,确保其正常运行,并通过Windows系统成功连接。涵盖了必要的密钥生成步骤及常见问题解决方法。 ... [详细]
  • This guide provides a comprehensive step-by-step approach to successfully installing the MongoDB PHP driver on XAMPP for macOS, ensuring a smooth and efficient setup process. ... [详细]
  • 导航栏样式练习:项目实例解析
    本文详细介绍了如何创建一个具有动态效果的导航栏,包括HTML、CSS和JavaScript代码的实现,并附有详细的说明和效果图。 ... [详细]
  • 深入解析JMeter中的JSON提取器及其应用
    本文详细介绍了如何在JMeter中使用JSON提取器来获取和处理API响应中的数据。特别是在需要将一个接口返回的数据作为下一个接口的输入时,JSON提取器是一个非常有用的工具。 ... [详细]
author-avatar
万源佳威5
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有