什么是正则表达式?正则表达式通常被用来检索、替换那些符合某个模式的文本,正则表达式是一种逻辑公式,用事先定义好的一些特定字符、及这些特定字符的组合,组成一个有规律的字符串。
下面我在百度找了一个图片更容易的让大家知道什么是正则表达式,也有利于大家学习正则表达式
其中正则表达式的元字符也是多种多样
比如”\” 将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符
“\s” 匹配任何空白字符,包括空格、制表符、换页符等等
“\t” 匹配一个制表符
“\w” 匹配包括下划线的任何单词字符
“+”匹配一次或多次
等等……
正则表达式也出在我们生活中的很多地方在电脑上有很多电话号码的登记
身份证日期的登记等等
<input type="text"id=“Inp” οnkeyup=“value=value.replace(/[^1-5]/g,’’)” >
这是一条简单的正则表达式代码 可以看到最后的1—5 其意思是出了1—5之内的数字只要出现自己便会自动删除
那怎么获取其中的一段代码呢
其实这个也是很简单的
假如我想要蓝色部分的代码 该怎么获取到
怎么获取到的? 那就要说起 分组语法了 具体内容是
(?=exp) 匹配exp前面的位置
(?<=exp) 匹配exp后面的位置
(?!exp) 匹配后面跟的不是exp的位置
(?<!exp) 匹配前面不是exp的位置
这四个便是这个的核心了 只要按照步骤便可以了
也有人会说要是期间有一模一样的便会直接获取所有而不是一部分
这边我再举一个例子
如果我们按照上边一样用g.+(?=g)这个是肯定行不通的了 那样是从第一个g直接获取到最后一个g的前面 上图也有这种效果
那要是想获取这一部分该怎么办?关于这个我不得不说一下 贪婪和懒惰了听名字也可以看出来他们的意思了 顾名思义就是一个字“懒”嘛 他们之间有这样一个约定
贪婪说:“当你的表达式中能接受重复的限定字符时通常的行为是匹配多的字符当然要在整个表达式能够匹配的前提下”
懒惰说:“如果你需要匹配很少的字符 在它的而后面加上一个问号?就行了”
如图所示。