正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
概念
正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式是一种文本模式,该模式描述在搜索文本时要匹配的一个或多个字符串。
语法
构造正则表达式的方法和创建数学表达式的方法一样。也就是用多种元字符与运算符可以将小的表达式结合在一起来创建更大的表达式。正则表达式的组件可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合。
普通字符
普通字符包括没有显式指定为元字符的所有可打印和不可打印字符。这包括所有大写和小写字母、所有数字、所有标点符号和一些其他符号。
- [],匹配[]中所有的字符。例:[abc]匹配a或b或c
- [^….],匹配[]中的字符除外.
- [a-z/A-Z],匹配a-z或者A-Z中所有字母
- \w,匹配数字,字母和下划线
- .,匹配除换行符以外所有字符
- \S,匹配除所有空白符包括(换行符)
- \s,匹配所有空白符包括换行符
特殊字符
特殊字符就是有特殊含义的字符,表示任意的字符串
如果要匹配这些特殊字符,需要使用转义字符:\。在特殊字符前面加入一个\。
| 特殊字符 | 含义 |
|---|---|
| $ | 匹配输入字符串的结尾位置 |
| () | 标记一个子表达式的开始和结束位置 |
| + | 匹配前面子表达式一次或者多次 |
| * | 匹配子表达式零次,一次或者多次 |
| . | 匹配所有除换行符以外的单个字符 |
| ^ | 在中括号外,表示正则表达式开始的地方,在中括号内:匹配除后面字符外的字符 |
| | | 两者中选择一个。例如:A|B就是A或者B |
| ? | 匹配前面表达式一次或者多次 |
限定符
限定符就是对指定正则表达式的一个给定组件必须要出现多少次才能满足匹配。有*,+,?,{n},{n,m},{n,}
前三个上文已有介绍在此就不在加以赘述。
| 限定符 | 含义 |
|---|---|
| {n} | 匹配确定的n次 |
| {n.} | 匹配至少n次 |
| {n,m} | 匹配至少n次至多m次 |
注意:*和+都是贪婪的,他们会尽可能多的匹配字符只有在其后加入一个?才能实现非贪婪或者最小匹配。
总结
上文所述便是正则表达式的一些基础语法,我们可以看出正则表达式可以极大方便我们对字符串的验证,和找出符合规范的子字符串。下一篇文章我将会介绍一下python中的正则表达式。