热门标签 | 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好理解,是引用第一个分组,表示出现了两个相同的字符串,后面的.*?是指匹配任意字符的惰性模式,对于本表达式,这样做可以减少错误匹配回溯的次数,加快匹配效率

推荐阅读
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • 本文总结了Java中日期格式化的常用方法,并给出了示例代码。通过使用SimpleDateFormat类和jstl fmt标签库,可以实现日期的格式化和显示。在页面中添加相应的标签库引用后,可以使用不同的日期格式化样式来显示当前年份和月份。该文提供了详细的代码示例和说明。 ... [详细]
  • 推荐一个ASP的内容管理框架(ASP Nuke)的优势和适用场景
    本文推荐了一个ASP的内容管理框架ASP Nuke,并介绍了其主要功能和特点。ASP Nuke支持文章新闻管理、投票、论坛等主要内容,并可以自定义模块。最新版本为0.8,虽然目前仍处于Alpha状态,但作者表示会继续更新完善。文章还分析了使用ASP的原因,包括ASP相对较小、易于部署和较简单等优势,适用于建立门户、网站的组织和小公司等场景。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
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社区 版权所有