正则表达式
1.什么是正则表达式
正则表达式,又称规则表达式。计算机科学的一个概念,通常被用来检索、替换那些符合某个模式(规则)的文本。是通过特殊字符+普通字符来进行模式描述从而达到文本匹配目的的工具。
2.应用场景
①验证:表单提交时,进行用户密码的验证
②查找:从大量信息中快速提取某些内容,例如,在一批url中,搜索指定url。
③替换:将指定格式的文本进行正则匹配查找查找,找到后进行指特定替换。
3、一些常用的正则表达式规则
字符 | 描述 |
---|---|
. | 匹配任意单个字符 |
| | 相当与“或”,可以匹配指定的字符,但是也只能选择其中一项进行匹配 |
^ | 匹配输入字符串的开始位置 |
$ | 匹配输入字符串的结束位置 |
* | 匹配前面的子表达式零次或多次,* 等价于{0,} |
+ | 匹配前面的子表达式一次或多次,+ 等价于 {1,}。 |
? | 匹配前面的子表达式零次或一次 ,? 等价于 {0,1}。 |
{n} | n 是一个非负整数,匹配确定的 n 次 |
{n,} | n 是一个非负整数,至少匹配n 次 |
{n,m} | m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次 |
? | 当该字符紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面时,匹配模式是非贪婪的 |
x | y |
[xyz] | 字符集合,匹配所包含的任意一个字符 |
[^xyz] | 负值字符集合,匹配未包含的任意字符 |
[a-z] | 字符范围,匹配指定范围内的任意字符 |
[^a-z] | 负值字符范围,匹配任何不在指定范围内的任意字符 |
\b | 匹配一个单词边界,也就是指单词和空格间的位置 |
\d | 匹配一个数字字符,等价于 [0-9] |
\D | 匹配一个非数字字符,等价于 [^0-9] |
\w | 匹配字母、数字、下划线,等价于’[A-Za-z0-9_]’ |
\W | 匹配非字母、数字、下划线,等价于 ‘[^A-Za-z0-9_]’ |
\f | 匹配一个换页符。等价于\x0c和\cL |
\n | 匹配一个换行符。等价于\x0a和\cJ |
\r | 匹配一个回车符。等价于\x0d和\cM |
\s | 匹配任何不可见字符,包括空格、制表符、换页符等等。等价于[ \f\n\r\t\v] |
\S | 匹配任何可见字符。等价于[^ \f\n\r\t\v] |
4.案例
原始文本如下面两行:
abc aaaaa
123 abc 444
希望每次遇到“abc”,则替换“abc”以及其后到行尾的内容为“abc efg”
即上面的文本最终替换为:
abc efg
123 abc efg
其中,符号的含义如下:
“.” =匹配任意字符
“*” =匹配0次或更多
注意:其实就是正则表达式替换,这里只是把一些曾经提出的问题加以整理,单纯从正则表达式本身来说,就可以引申出成千上万种特例。