自学内容网 自学内容网

正则表达式解析

字符分类

元字符

是指那些在正则表达式中具有特殊意义的专用字符,元字符是构成正则表达式的基本元件。

元字符大致分成这几类:表示单个特殊字符的,表示空白符的,表示某个范围的,表示次数的量词,另外还有表示断言的。

特殊字符

常用特殊字符

代码说明
.匹配除换行外任意字符
\d匹配任意数字
\D匹配任意非数字
\w匹配任意字母数字下划线
\W匹配任意非字母数字下划线
\s匹配任意空白符或制表符(看不见的字符)
\S匹配任意非空白符或制表符(看得见的字符)
\b匹配单词的开始或者结束
^匹配字符串的开始
$匹配字符串的结束

示例演示

  • \d\w\s 表示匹配第一个字符为数字,第二个字符为字母数字下划线,第三个字符为空格符。例如:12 ,1q ,1_ 。
  • ^\d\d\d$ 表示匹配三个字符都为数字的字符串,例如:111, 159。

量词(限定字符)

上面我们说到了特殊字符,比如\b表示匹配任意一个数字,那么如果我们的场景需要匹配多个字符呢,这时候我们就需要限定字符的出现。

常用限定字符

代码说明
*重复0次到多次
+重复1次到多次
?重复0次或1次
{n}重复n次
{n,}重复n次到多次
{n,m}重复n次到m次

示例演示

  • \d* 表示匹配重复0次或多次数字,例如:为空,2222222
  • \d+ 表示匹配重复1次或多次数字,例如:1,22,333
  • \d? 表示匹配重复0次或1次数字,例如:为空,5
  • \d{4}表示匹配重复4次数字,例如:1111,8888
  • \d{2,}表示匹配重复2次或多次数字,例如:11,5555
  • \d{2,4}表示匹配重复2次到4次数字,例如:11,555,4444

转义字符

在实际开发中难免会遇到匹配元字符的情况,这个时候我们就需要使用转义字符对字符进行转义。
例如: . * \这三个就需要转换为\. \* \\

范围字符

在正则表达式中,表示范围的符号有三个分类

代码说明
[…]多选一,括号中的任意单个元素
[a-z]匹配a-z之间的任意单个元素
[^…]取反,不包括括号里边的任意单个元素

示例演示

  • [aeiou] 表示任意的元音字母

语法使用

分枝

到此我们已经可以匹配一些东西了,比如手机号\d{11},但有些固定电话只有三位数字或者四位数字,这个时候我们可以采用分枝字符。
例如:\d{3}-\d{8}|\d{4}-\d{8}可以表示不同长度区间的电话号码

分组

字符分组多用于将多个字符重复,主要通过使用小括号()来进行分组。
例如:(\d\w){3} 重复匹配3次(\d\w)

常用用法

代码说明
(exp)匹配exp,并捕获文本到自动命名的组里
(?<name·>exp)匹配exp,并捕获文本到名称为name的组里,也可以写成(?'name’exp)
(?:exp)匹配exp,不捕获匹配的文本,也不给此分组分配组号
(?=exp)匹配exp前面的位置
(?!exp)匹配后面跟的不是exp的位置
(?<!exp)匹配前面不是exp的位置
(?#comment)这种类型的分组不对正则表达式的处理产生任何影响,用于提供注释让人阅读

学了这么多,我们来联系一下叭:
情景:现在我们去某个网站注册用户时候,当设置密码时候,网站会提醒你的密码长度需要在6-12位之间,且匹配规则限制为:密码需要包括数字,大小写字母和特殊字符四种组合,特殊字符需要在~ @ # $ % * _ - + = : , . ?之间选择;

^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.[~@#S%_\-+=:.?])[A-Za-z0-9~@#S%_\-+=:.?]{6-16}$

^:表示字符串的开始。

(?=.*[0-9]):这是一个正向前瞻,确保字符串中至少包含一个数字(0-9)。

(?=.*[a-z]):同样是一个正向前瞻,确保字符串中至少包含一个小写字母(a-z)。

``(?=.*[A-Z])`:又一个正向前瞻,确保字符串中至少包含一个大写字母(A-Z)。

(?=.[~@#S%_\-+=:.?]):这个正向前瞻确保字符串中至少包含一个特定的特殊字符。这里的特殊字符包括 ~ @ # S % * _ - + = : , . ?

[A-Za-z0-9~@#S%*_\-+=:.?]:这部分定义了允许的字符集合,包含所有大小写字母、数字和指定的特殊字符。

{6,16}:指定了字符串的长度必须在8到20个字符之间。

$:表示字符串的结束


原文地址:https://blog.csdn.net/m0_73593563/article/details/144066263

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!