正则表达式
Posted liuqingyang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式相关的知识,希望对你有一定的参考价值。
一.正则表达式
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
二.正则表达式的运用
1.字符组
[0-9] 匹配的是[0123456789]的范围。
[a-z] 匹配的是所有的小写字母。
[A-Z] 表示所有的大写字母。
[0-9a-fA-F] 可以匹配数字,大小写形式的a-f,用来验证十六进制字符。
2.字符
. 表示匹配除换行符以外的任意字符
w 匹配字母或数字或下划线
s 匹配任意空白符 ( space)
d 匹配数字
匹配一个换行符
匹配一个制表符
匹配一个单词的结尾
^ 匹配字符串的开始
$ 匹配字符串的结尾
W 匹配非字母或数字或下划线
D 匹配非数字
S 匹配非空白符
a|b 匹配字符a或字符b
() 匹配括号内的表达式,也表示一个组
[...] 匹配字符组中的字符
[^...] 匹配除了字符组中字符的所有字符
3.量词
* 重复0次或者更多次
+ 重复一次或更多次
? 重复0次或者一次
{n} 重复n次
{n,} 重复n次或者更多次
{n,m} 重复n到m次
三.正则表达式特点
1.贪婪匹配,也就是尽可能匹配,后面加?号使其变成惰性匹配
.* 默认为贪婪匹配模式,会匹配尽量长的字符串
.*? 加上?为将贪婪模式转为非贪婪模式,会匹配尽量短的字符串
2.几个常用的非贪婪匹配的Pattern
*? 重复任意次,但尽可能少重复
+? 重复一次或更多次,但尽可能少重复
?? 重复0次或1次,但尽可能少重复
{n,m}? 重复n到m次,但尽可能少重复
(n,)? 重复n次以上,但尽可能少重复
.*?的用法
取尽量少的任意字符,一般不会这么单独写,他大多用在:.*?x就是取前面任意长度的字符,直到一个x出现
以上是关于正则表达式的主要内容,如果未能解决你的问题,请参考以下文章