正则表达式

正则表达式

1、字符组

  • [] :允许匹配一组可能出现的字符
  • 示例:
    • [Pp]ython => 匹配大小写的python

2、区间

  • -:匹配符合范围的字符,大小写敏感
  • 示例:
    • [0-9] => 匹配0-9之间的所有数字
    • [a-z] => 匹配a-z之间的所有字母
    • [a-zA-Z] => 大小写全部匹配

3、转义字符

  • \:用于匹配一些特殊字符

4、非集(取反)

  • ^:匹配不在集合中的字符
  • 示例:
    • [^0-9] => 匹配0-9以外的字符,不包括0-9

5、快捷方式

符号作用
\d匹配所有数字
\w匹配所有字符,包含数字、大小写字符
\s匹配空白字符、含空格、tab、换行等
\b匹配单词边界。示例:\bmaster\b => 匹配所有边界的master单词

6、开始和结束

  • ^:指定的是一个字符串的开始
  • $:指定的是一个字符串的结束
  • 示例:
    • ^python$=>匹配以p开头以n结尾的字符串

7、任意字符

  • .:匹配单个字符,只能出现在[]
    注:不能匹配换行符(\n)

8、可选字符

  • ?:指定一个字符、字符组或其他基本单元可选,匹配1次或0次
  • 示例:
    • bu?nd=>匹配bundbnd,可选的

9、匹配多个数据

  • {N}:匹配在字符组后加上,表示它之前的字符组出现N次
  • 示例:
    • \d{9}=>匹配任意的9个数字

10、重复区间

  • {M,N}:M是上界,N是下界
  • 示例:
    • \d{8,10}:匹配8~10个任意数字

注意⚠️:{}后加?,即当匹配到上界时就不再匹配,不加?则为贪婪模式,尽可能多的匹配字符

  • {M,}:匹配M个或无数任意多个

11、速写

+匹配1到无数个,即{1,}
*匹配0到无数个,即{0,}
  • 示例:
    • \d+
    • \d*
    • ^f.+=>匹配f开头的数据

12、或者条件

  • |:匹配多个条件中的1个条件
  • 示例:
    • (.jpg|.png) => 匹配jpg格式或者png格式的数据

13、非捕获分组

  • (?:表达式):不捕获数据,也能使用分组
  • 示例:
    • \b(?:\w|\w{4})\b => 匹配两个或个四个字母组成的单词

案例

(1)匹配所有手机号码
  1. 第一位须以1开头
  2. 第二位可以是[3,4,5,7,8]中的任意一个数字
  3. 后9位可以是[0-9]中任意一个数字
  • 示例:^1[34578]\d{9}
    • [34578] => 匹配[]中可能出现的数字
    • \d{9} => 匹配9次
(2)匹配网站地址
  • http.*/$
    • . => 匹配单个字符
    • * => 匹配0到多个任意字符
    • /$ => 匹配以/为结尾
(3)分组
  • ():将表达式分组
  • 示例:
    • (\d{4})-(\d{7}) => 分别匹配两组数据
(4)匹配学号
  • 示例:年份-班级代码-在班中排序
表达式解释说明
(\d{4})[\-\s]?(\d{4})[\-\s]?(\d{2})(匹配四次)匹配0-1个空格或-(匹配四次)匹配0-1个空格或-(匹配两次)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FREE_QIU

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值