正则表达式基础

289 阅读1分钟

我正在参加「掘金·启航计划」

正则基础知识点:

  1. 元字符

万物皆有缘,元字符是构造正则表达式的一种基本元素

元字符说明
.匹配除换行符以外的任意字符
\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$

  1. 反义元字符
元字符说明
\W匹配任意不是字母,数字,下划线,汉字的字符
\S匹配任意不是空白符的字符
\D匹配任意非数字的字符
\B匹配不是单词开头或结束的位置
[^x]匹配除了x以外的任意字符
[^aeiou]匹配除了 aeiou 这几个字母以外的任意字符
  1. 重复限定符

为了处理一些重复问题,比如匹配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}$

  1. 区间

正则提供一个元字符中括号 [] 来表示区间条件。

限定0到9 可以写成[0-9]

限定A-Z 写成[A-Z]

限定某些数字 [165]