0%

正则表达式笔记

前言

本文主要对正则表达式的一些语法进行了一些记录,有机会长期补充一下:

正则表达式基础语法

正则基础语法

元字符

  元字符用来对字符串进行简单的匹配。

元字符 说明
. 匹配除换行符以外的任意字符
\w 匹配 字母、数字、下划线或汉汉字
\s 匹配任意空白符
\d 匹配数字
\b 匹配单词的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束

  例子:

  1. 匹配有abc开头的字符串
1
\babc或^abc
  1. 匹配3位数字
1
^\d\d\d$
  1. 配7开头的3位数字
1
^7\d\d$

重复限定符

  元字符规则匹配的一般是单个或固定多个字符的情况,这很笨重,有时候多个字符匹配的规则是一样的,这时候就需要用重重复限定符去进行一个匹配。

重复限定符 说明
* 重复任意次数,包括0次
+ 重复1次以上
? 重复0次或1次
{n} 重复n次
{n,} 重复n次即以上
{n, m} 重复n到m次之间都匹配

  用了重复限定符之后会优雅很多。

  1. 匹配11位手机号,必须以1开头
1
^1\d{10}$
  1. 匹配a开头,x结尾,中间是12-18位数字的字符串
1
^a\d{12-18}x$
  1. 匹配a开头,0个或多个b结尾的字符串
1
^ab*$

分组

  使用括号来对一组字符进行匹配。

  1. 匹配xy开头的任意数量的字符
1
^(xy)*$

转义

  防止正则符号和字符符号冲突。

  1. 匹配任意数量(ab)
1
(\(ab\)*

条件或和区间

  用|表示或,[]表示区间([0-9][a-z][A-Z][156]等,[]只能匹配一个字符

1
2
^((13[0-2])|(15[56])|(18[5-6])|145|176)\d{8}$
^(130|131|132|155|156|185|186|145|176)\d{8}$ // 等价

前断言和后断言

  先不写了,有点事,以后再说。