正则表达式从入门到实战

作者/分享人:JPM
向 Ta 提问
擅长JavaWeb开发,项目管理,乐于分享。

在开发的过程中,字符串处理往往很频繁。比如我们经常会对用户输入做校验:手机号,身份证号,邮箱,密码,域名,IP 地址,URL 或者其他与字符串相关校验的业务场景。

正则表达式就是一种强大而灵活的文本处理工具,正则可以很好的解决这类字符串校验问题。掌握正则表达式,就能大大提高开发过程的效率。

本场 Chat 将为大家提供一款好用的正则工具,我将从2个方面入手,让大家在90分钟内,学会正则表达式并能解决工作中遇到的实际问题。

  1. 学习正则表达式的语法规则,并介绍开发过程中使用正则表达式的流程。
  2. 通过实现 5 个小功能练习使用正则,然后解决 2 个实际开发中遇到的问题。

通过本场 Chat 的学习,从零开始轻松掌握正则表达式,并且具备解决实际项目问题的能力。

已有290人预订
预订达标
文章出炉
交流日期
     
17.10.26
17.11.06
17.11.13 20:30
查看文章评论/提问
黄兆鹏
第一个表格里面\w的含义后面的等效写错了
JPM: 不好意思,是错了,大写表示取反。 更正一下: \w等效于[A-Za-z0-9] \W等效于[^A-Za-z0-9]
zhen.guo
您好,请问正则表达式规则挺多的,在面对一个实际任务,需求的时候,我们该如何快速想到相应的正则表达式呢? 有没有好的这方面的思路,步骤?
JPM: 本场chat的交流就是以这个问题为主线,做的一次chat,交流的详细内容,请参考官方发布的chat实录。 1、分析任务要求的字符串特点,模拟出符合条件和不符合条件的数据集合 2、利用“RegexBuddy”正则工具,写正则去匹配这些数据集合,测试自己的正则,知道符合要求 3、把经过验证的正则,在代码里实现,最终完成任务。
zhen.guo: 总结的很到位!
阿二
感谢作者的分享,很受用,请问可否补充一下正则的标志i,g等的功能 ,能及标志与()捕获组共用时出现的:一次匹配,两次匹配问题,这一块不是很清楚
JPM: 没太理解您的意思,能否再明确一点,谢谢
mengxn
对于最后一个表达式「^(?![A-Za-z]+$)(?![0-9]+$)(?![@#$]+$)[A-Za-z0-9@#$]{6,20}$」不是很理解,怎么理解开始处只需要一个「^」符号?能否详细点
JPM: regex=^(?![A-Za-z]+$)(?![0-9]+$)(?![@#$]+$)[A-Za-z0-9@#$]{6,20}$ 解释: ^(?![A-Za-z]+$)表示从头到位不能全是字母 ^(?![0-9]+$)表示从头到位不能全是数字 ^(?![@#$]+$)表示从头到位不能全是符号@#$ ^[A-Za-z0-9@#$]{6,20}$表示从头到位只能是字母数字符号@#$的集合 需要注意的是,开始符“^”和预搜索“(?!)”都是零宽的,表示位置,所以开始符“^”只需要在整个正则表达式的开始处写一个即可。
你可能还喜欢
如何设计一个灵活的 MySQL 数据表,应对灵活多变的需求
李岩
Jenkins 自动化构建部署实战
火币集团研发中心
Java 程序员应掌握的 Nginx 实战应用
JPM
带你玩转 JSON
能量架构师
实战剖析 Java 秒杀系统的实现
虎口脱险
小程序从入门到进阶
loonglong
微信扫描登录