正则表达式:又称规则表达式,英文名为Regular Expression,
在代码中常简写为regex、regexp或RE
正则表达式通常被用来检索、替换那些符合某个模式规则的文本
正则表达式是用于进行文本匹配的工具
上面文本框用于匹配:YY
下面的文本框用于输入内容:KKEYY,UUYY,YYU,YY
正则表达式:YY
若要精确的匹配出hi,正则表达式:\bYY\b
\b是正则表达式规定的一个特殊代码,我们把它叫做元字符,
单词的开头或结尾,也就是单词的分界处,它只匹配一个位置
元字符:
. 匹配除换行符以外的任意字符
\w 匹配数字或字母或下划线或汉字
\s 匹配任意的空白符
\d 匹配数字
\b 匹配单词的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束
字符转义:
‘’:如果你想查找元字符本身的话,
比如你查找\b,或者*,就出现了问题:你没法指定它们,
因为它们会被解释成其它的意思。这时你就必须使用\来
取消这些字符的特殊意义。因此,你应该使用.和*。
当然,要查找\本身,你也得用\b
常用的限定符(重复):
*重复零次或更多次+ 重复一次或更多次
? 重复零次或一次
{n} 重复n次
{n,}重复n次或更多次
{n,m} 重复n到m次
反义:
代码/语法 说明
\W 匹配任意不是字母,数字,下划线,汉字的字符
\S 匹配任意不是空白符的字符
\D 匹配任意非数字的字符
\B 匹配不是单词开头或结束的位置
[^x] 匹配除了x以外的任意字符
[^aeiou]匹配除了aeiou这几个字母以外的任意字符
分组语法
(?=exp 匹配exp前面的位置
(?<=exp)匹配exp后面的位置
(?!exp) 匹配后面跟的不是exp的位置
(?<!exp)匹配前面不是exp的位置
贪婪与懒惰
贪婪:当正则表达式中包含能接受重复的限定符时,通常的行为是
(在使整个表达式能得到匹配的前提下)匹配尽可能多的字符这被称为贪婪匹配
懒惰:有时,我们更需要懒惰匹配,也就是匹配尽可能少的字符。
如果将前面给出的限定符转化为懒惰匹配模式,只要在它后面加上一个问号?
懒惰限定符
*? 重复任意次,但尽可能少重复
+? 重复1次或更多次,但尽可能少重复
?? 重复0次或1次,但尽可能少重复
{n,m}? 重复n到m次,但尽可能少重复
{n,}? 重复n次以上,但尽可能少重复
替换:
正则表达式里的替换指的是有几种规则,如果满足其中任意一种规则都应该当成匹配,具体方法是用|把不同的规则分隔开
使用替换时,顺序是很重要的
它是由左到右来进行匹配的
匹配11位数字和7位数字
它会对第一条规则先进行匹配,第二条规则就匹配不到
要先对11位数的进行匹配,然后再到7位数的进行匹配才是正确的