正则表达式的快速学习和使用(基础)

来源:互联网 发布:oracle数据库代理商 编辑:程序博客网 时间:2024/04/28 12:35

        定义:正则表达式,又称规则表达式(英语: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结尾的


这两个比较常用。

举几个简单的例子让你快速入门正则表达式