正则表达式

正则表达式

学习参考链接:

一、符号

符号描述
??前面的字符可以初选 0次 或 1次
**前面的一个字符可以出现 0次 或 多次
++前面的字符必须出现 1次 以上
.表示匹配任意字符
[]包含集合,表示匹配[]中所包含的字符
{a,b}{}前面的字符可以出现 a ~ b次 可以匹配
\s表示所有的空白符,包括换行
\S表示所有的非空白字符,不包括换行
\w匹配字母、数字、下划线。
\W匹配非单词字符
\d表示匹配数字
\D表示匹配非数字
\b表示匹配单词边缘
^表示匹配字符串开头
$匹配字符串结尾
()包裹一个表达式
|或运算符号

二、基本示例

各种符号之间可以组合,可以根据需求组合这些符号,从而进行字符串匹配。

ab?c:可以匹配 ac abc
ab*c: 可以匹配 ac abc abbc abbbc …
ab+c: 可以匹配 abc abbc abbbc …
a.c: 可以匹配 aac abc acc … a 与 c 之间任意一个符号(必须存在)

[aeiou]:表示匹配任意小写的元音字母
[a-z]:表示匹配任意小写字母
[A-Z]:表示匹配任意大写字母
[a-zA-Z]:表示匹配任意字母
[0-9]:表示匹配任意数字符号
[a-zA-Z0-9]:表示匹配任意的字母与数字

a{1,3}:表示 a 字符可以匹配 1 ~ 3 次,可以匹配 a aa aaa
a{2,}:表示 a 字符可以匹配 2 次以上
a{3}:表示 a 字符必须出现 3 次,匹配 aaa

(a | b):表示匹配 a 或 b 字符
( ([a-z]) | ([A-Z]) ):表示匹配小写字母或大写字母,效果等价于 [a-zA-Z] ,这是为了展示或运算 | 的两边也可以用表达式
[^aeiou]:表示匹配除了 a e i o u 以外的其他任意字符

^a.+z$:表示匹配以 a 开头和 z 结尾的完整字符串

三、实例

3.1 腾讯邮箱规则匹配 @qq.com

格式检查完整表达式:^[a-zA-Z0-9]((\.?|-?|_?)[a-zA-Z0-9]+)+(@qq\.com)$

  • 这是英文邮箱地址的要求:
    在这里插入图片描述

  • 解析:

    • 只能以数字与字母开头:^[a-zA-Z0-9]
    • 中间能够出现点、减号、下划线但不能连续出现,且不能以点、减号、下划线结尾:(\.?|-?|_?)[a-zA-Z0-9]+
    • 后缀地址:@qq\.com$
  • 组合后:^[a-zA-Z0-9]((\.?|-?|_?)[a-zA-Z0-9]+)+(@qq\.com)$

    • 其中 ((\.?|-?|_?)[a-zA-Z0-9]+)+ 表示能够匹配多组分隔符号子字符串。
  • 存在问题:

    • 只能判断邮箱格式,不能判断邮箱长度。
    • 字符串中可能出现多段分隔符+字母数字,并且每段长度可能都不一样,所以不方便判断长度。
    • 长度判断相对简单,可以独自编程判断,也可以使用 ^.{3,18}(@qq\.com)$ 进行判断。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值