定义:正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则 表通常被用来检索、替换那些符合某个模式(规则)的文本。
先举个栗子,打开notepad++或者其他支持正则表达式搜索的工具,输入size=1543
然后在搜索中输入size=(\d*)
点击查找,发现就能搜索到
好那么 size=(\d*)是什么意思呢
()括号等会说,\d是匹配数字的,也就是说=后边是数字的就会匹配上了,*的意思是:匹配0次或者任意次数。
*是量词,修饰前面的\d,合起来意思是 =后边 出现0或者更多个数字 都能被匹配。
现在升级一下难度
多了个小数点,发现我们就匹配不了了。这个时候我们要先疲惫这个小数点,再匹配小数点后边的数字。
直接给出答案吧:size=(\d*\.?\d+)。
我们发现多了\.?\d+
\.的意思就是小数点,?也是量词表示匹配一次或者0次 可以理解为 ”有或者没有“,\.?的意思不就是 有或者没有小数点。+ 至少匹配一次 \d+ 至少会有一个数字。
现在来看看这个表格
都是基础的,再给出几个例子,相信大家就明晰了怎么使用
电话号码:\d{3,4}-\d{7,8}
E-mail地址:\w+@\w+(\.\w+)+
这些是比较简单的,再介绍点概念和复杂的正则
第一个,贪婪与非贪婪,字面意思 贪婪就是啥都想要 尽可能多的匹配,比如*,匹配0个或多个,他会先匹配“多个”,有多少匹配多少。非贪婪”?“
还的举个例子.+? 点是任意字符 +一次或多次 ,如果是.+,就会把文本的整行都匹配进来。但如果是.+?,只会匹配一个字符。
前向肯定和前向否定。?=和?!
前向肯定?= 下边 以a结尾
后向否定?!,查找不是a结尾的
这两个比较常用。
举几个简单的例子让你快速入门正则表达式