正则表达式
正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。
测试工具
语法
1.元字符
字符 |
含义 |
示例 |
* |
匹配任意长度的字符串 |
|
? |
匹配长度为1的字符串 |
|
. |
匹配除换行符以外的任意字符 |
|
^ |
匹配字符串(一行)的开始 |
|
$ |
匹配字符串(一行)的结束 |
|
\w |
匹配字母或数字或下划线或汉字 |
|
\s |
匹配任意的空白符 |
|
\d |
匹配数字 |
|
\b |
匹配单词的开始或结束 |
\bgood\b |
\r |
匹配回车符 |
|
\n |
匹配换行符 |
|
\f |
匹配换页符 |
|
[a-z]] |
匹配指定范围内任意字母 |
|
[1-9]] |
匹配指定范围内任意数字 |
|
2.反义
字符 |
含义 |
示例 |
\W |
匹配任意不是字母或数字或下划线或汉字的字符 |
|
\S |
匹配任意不是空白符的字符 |
|
\D |
匹配任意非数字的字符 |
|
\B |
匹配不是单词的开始或结束的位置 |
|
[^x] |
匹配任意除x以外的字符 |
|
[^aeiou] |
匹配除了aeiou这几个字母以外的任意字符 |
|
3.重复模式
字符 |
含义 |
示例 |
* |
重复零次或更多次 |
|
+ |
重复一次或更多次 |
|
? |
重复零次或一次 |
|
{n} |
重复n次 |
|
{n,} |
重复n次或更多次 |
|
{n,m}} |
重复n到m次 |
|
4.贪婪和懒惰
字符 |
含义 |
示例 |
*? |
重复零次或更多次,但尽可能少重复 |
|
+? |
重复一次或更多次,但尽可能少重复 |
|
?? |
重复零次或一次,但尽可能少重复 |
|
{n,}? |
重复n次或更多次,但尽可能少重复 |
|
{n,m}}? |
重复n到m次,但尽可能少重复 |
|
5.分支条件
- 用 | 把不同的规则分隔开
- 从左到右的测试每个条件,如果满足了某个分支的话,就不再管其他的条件了
6.分组匹配
- 使用()进行分组,将子表达式做成子集
- ()内的内容单独匹配捕获为为一组结果
- (?:)对()的子表达式进行匹配但不分组也不捕获