温馨提示:本文最后更新于2022年12月3日,已超过 30 天没有更新,某些文章具有时效性,若有错误或已失效,请在下方留言!

正则表达式基础


特殊字符 描述
[ 需要匹配的字符
{ 指定匹配字符的数量
^ 匹配输入字符串的开始位置,在集合里表示不匹配
$ 匹配输入字符串的结束位置
\w 匹配字母或数字或下划线或汉字
\s 匹配任意的空白符
\d 匹配数字
\b 匹配单词的开始或结束
. 匹配除换行符以外的任意字符

实例:

1.匹配第一个字符为字母或数字或下划线汉字,第二个字符为数字,第三个字符为空格
格式:\w\d\s   如:_1 ,a2 ,12 

2.匹配三个全部都为数字的字符串
格式:^\d\d\d$ 如:123,456,789

3.匹配单词Alive
格式:\bAlive\b    如:I Will Aliver and Alive
注意:返回的是Aliver而不是Alive,因为\b....\b返回的匹配的单词

限定字符


字符 描述
* 匹配前面的子表达式零次或多次。
+ 匹配前面的子表达式一次或多次。
? 匹配前面的子表达式零次或一次。
{n} 匹配确定的n次
{n,} 至少匹配n次或更多次
{n,m} 最少匹配n次且最多匹配m次

实例:

1.\d*   匹配重复0次或多次数字  例如:可能为空 或 任意数字 (5,2,3.....)

2.\d+ 匹配重复1次或多次数字    例如:可能为1个或多个数字 1,23,234,2345,........

3.\d? 匹配重复零次或者一次数字  例如:可能为空或者任意的一个数字(1,2,....)

4.\d{8}匹配重复8次数字     例如:123456768

5.\d{4,}匹配重复至少4次数字 例如:1234,12345,124244,.......

6.^\d{8,11}$ 匹配重复8-11次数字 例如:12345678,123456789,1234567890,12345678901

反义字符


字符 描述
\W 匹配任意不是字母,数字,下划线,汉字的字符
\S 匹配任意不是空白符的字符
\D 匹配任意非数字的字符
[^x] 匹配除了x以外的任意字符

简单实例


  • 只能输入数字:\^[0-9]*$
  • 只能输入n位的数字:\^d{n}$
  • 只能输入至少n位的数字:\^d{n,}$
  • 只能输入m~n位的数字:\^d{m,n}$
  • 只能输入零和非零开头的数字:^(0|[1-9][0-9]*)$
  • 只能输入有两位小数的正实数:\^[0-9]+(.[0-9]{2})?$
  • 只能输入有1~3位小数的正实数:\^[0-9]+(.[0-9]{1,3})?$
  • 只能输入非零的正整数:\^+?[1-9][0-9]*$
  • 只能输入非零的负整数:\^-[1-9][]0-9*$
  • 只能输入长度为3的字符:\^.{3}$
  • 只能输入由26个英文字母组成的字符串:\^[A-Za-z]+$
  • 只能输入由26个大写英文字母组成的字符串:\^[A-Z]+$
  • 只能输入由26个小写英文字母组成的字符串:\^[a-z]+$
  • 只能输入由数字和26个英文字母组成的字符串:\^[A-Za-z0-9]+$
  • 只能输入由数字、26个英文字母或者下划线组成的字符串:\^w+$
  • 只能输入由数字、26个英文字母或者下划线组成的字符串:\^w+$
  • 验证用户密码:\^[a-zA-Z]w{5,17}$正确格式为:以字母开头,长度在6~18之间,只能包含字符、数字和下划线。
  • 只能输入汉字:\^["u4e00-"u9fa5]{0,}$
  • 验证身份证号(15位或18位数字):\^d{15}|d{18}$