前言
曾经我一度对正则表达式有种恐惧和厌恶感,为啥?因为总感觉这玩意很难,很枯燥,看到别人写出
贼牛逼的正则
,我想啥时候我能像他们一样优秀。直到我看到了这三个知识点。。。
只需要花10分钟时间,你可以收获
- 正则表达式中的位置匹配原理与知识
- 正则表达式中的字符串匹配原理与知识
- 正则表达式中的括号的妙用
- 14个常见正则表达式解析帮助理解知识点
相信我,看完这篇文章,对于工作中90%以上的正则问题你都能找到解决思路和方案。
默念三声
正则表达式是匹配模式
,要么匹配字符
,要么匹配位置
正则表达式是匹配模式
,要么匹配字符
,要么匹配位置
正则表达式是匹配模式
,要么匹配字符
,要么匹配位置
1.搞懂位置能干啥?
题目1:数字的千分位分割法
将123456789转化为123,456,789
题目2:手机号3-4-4分割
将手机号18379836654转化为183-7983-6654
题目3:验证密码的合法性
密码长度是6-12位,由数字、小写字符和大写字母组成,但必须至少包括2种字符
这些题时常出现在面试中,日常业务也少不了它的身影。搞懂位置,不仅能搞定面试,业务你也将写的飞起
啥是位置?
正则表达式是匹配模式,要么匹配字符,要么匹配位置。那什么是位置呢?
如下图箭头所指,位置可以理解为相邻字符之间的位置。
image.png
咱们可以和空字符串进行类比, 字符的首尾、间隙都可以用空字符串进行连接。
代码语言:javascript复制'hello' === '' 'h' '' 'e' '' 'l' '' 'l' '' 'o' '' // true
image.png
有哪些位置?
正则中常用来表示位置的符号主要有:
^、$、b、B、?=p、(?!p)、(?<=p)、(?<!p)
接下来咱们就一个个把他们全整明白。
^
脱字符,匹配行的开头
例如要在hello的开头塞一个笑脸(