我正在参加「掘金·启航计划」
正则基础知识点:
- 元字符
万物皆有缘,元字符是构造正则表达式的一种基本元素
元字符 | 说明 |
. | 匹配除换行符以外的任意字符 |
\w | 匹配字母或数字或者下划线或者汉字 |
\s | 匹配任意的空白符 |
\d | 匹配数字 |
\b | 匹配单词的开始或结束 |
匹配字符串的开始 | |
$ | 匹配字符串的结束 |
1.1 匹配有abc开头的字符串:
\babc或者^abc
1.2 匹配8位数字的QQ号码:
^\d\d\d\d\d\d\d\d$
1.3 匹配1开头11位数字的手机号码:
^1\d\d\d\d\d\d\d\d\d\d$
- 反义元字符
元字符 | 说明 |
\W | 匹配任意不是字母,数字,下划线,汉字的字符 |
\S | 匹配任意不是空白符的字符 |
\D | 匹配任意非数字的字符 |
\B | 匹配不是单词开头或结束的位置 |
[^x] | 匹配除了x以外的任意字符 |
[^aeiou] | 匹配除了 aeiou 这几个字母以外的任意字符 |
- 重复限定符
为了处理一些重复问题,比如匹配11位手机号
语法 | 说明 |
* | 重复零次或者更多次 |
+ | 重复一次或者等多次 |
? | 重复零次或者一次 |
{n} | 重复n次 |
{n,} | 重复n次或更多次 |
{n,m} | 重复n到m次 |
3.1. 匹配8位数字的QQ号码:
^\d{8}$
3.2 匹配1开头11位数字的手机号码:
^1\d{10}$
3.3 匹配银行卡号是14~18位的数字:
^\d{14,18}$
3.4 匹配以a开头的,0个或多个b结尾的字符串
^ab*$
4.分组
匹配以a开头的,0个或多个b结尾的字符串
^ab*$ 正则表达式中用小括号() 来做分组,也就是括号中的内容作为一个整体 如: 我们需要匹配多个ab时, 匹配字符串中包含0到多个ab开头: ^(ab)*
5.转义
只需要在 需要转义的字符前面加上 \ 即可
6.条件或
正则使用符号 | 来表示或,也叫作分支条件
基本是匹配相同或者固定的开头的字符串 例如 手机号或者身份证号
^(130|131|132|155|156|185|186|145|176)\d{8}$
- 区间
正则提供一个元字符中括号 [] 来表示区间条件。
限定0到9 可以写成[0-9]
限定A-Z 写成[A-Z]
限定某些数字 [165]