正则表达式入门

正则表达式

什么是正则表达式?

  • 正则表达式又称规则表达式,正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。

常见的标准字符说明

标准字符含义
\d匹配0-9之间的任意一个数字,相当于[0-9]
\D匹配非数字字符[^0-9]
\w匹配任意一个字母、数字或下划线相当于[A-Za-z0-9]
\W匹配非字母、数字或下划线相当于[^A-Za-z0-9]
\s匹配任何空白字符,例如空格,制表符,换页符等,相当于?[\r\n\f\t\v]
\S匹配任何非空白字符,相当于[^\r\n\f\t\v]
\n匹配换行符
\r匹配回车
\t匹配制表符
\v匹配垂直制表符
\f匹配换页符

常用的特殊字符说明

特殊字符含义
\转义字符,将下一个字符标记为特殊字符
^匹配字符串开始的位置
$匹配字符串结束的位置
*零次或多次匹配前面的字符或者子表达式
+一次或多次匹配前面的字符或者子表达式
?零次或一次匹配前面的字符或者子表达式
.匹配除”\n\r”以外的任何单一字符
|
[]匹配字符组中的字符
()分组
{n}重复匹配n次
{n,}重复n次或更多次
{n,m}重复n到m次

模式匹配符

特殊字符含义
/i不区分大小写 (insensitive)
/g全局匹配 (global)
/m多行模式 (mult)

两种匹配模式

  • 正则表达式的默认模式是贪婪模式,即尽可能多的匹配字符。非贪婪模式顾名思义就是尽可能少的去匹配字符。在匹配字数的两次后加一个“?”问好即可。

在大家对正则表达式的一些常见的字符有了基础的了解以后,博主就给大家介绍一下一些简单的实例,方便大家加深对正则表达式的理解

所需匹配的字符正则表达式匹配结果正则表达式含义
123456abcga789cbhsauca/[0-9]+/g这里写图片描述匹配字符串中的所有数字
123456abcga789cbhsauca/[^0-9]+/g这里写图片描述匹配非数字的字符
123456abcga789cbhsauca/[0-9]{1,2}/g这里写图片描述匹配从匹配起的第一个数字字符起,再往后加1个字符(即:每三个数字为一组)
612asbdgad3456abcga789cbh6/^6.{0,5}/g这里写图片描述匹配以6开头的除了换行符以外的5个字符
612asbdgad3456abcga789cbh6axahwa6.{0,6}$这里写图片描述
李杰和李莲英和李二棍子李[杰莲英二棍子]*这里写图片描述匹配”李”字后面包含[杰莲英二棍子]的字符任意次

以上就是博主为了方便大家更好的了解正则表达式的使用,给大家举的一些例子
接下来,博主就把一些比较常用的正则表达式给大家归纳一下

正则表达式适用情况
/(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)/将一个URL解析为协议、域、端口及相对路径。
^\w+([-+.]\w+)@\w+([-.]\w+).\w+([-.]\w+)*$匹配email邮箱
\d{4}-\d{8}|\d{3}-\d{8}匹配xxx-xxxxxxxx或者xxxx-xxxxxxxx类型的电话号码
^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$匹配手机号码
^[a-zA-Z]\w{5,17}$字母开头,长度在6~18之间,只能包含字母、数字和下划线的密码
^(?=.\d)(?=.[a-z])(?=.*[A-Z]).{8,10}$必须包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间
\d{4}-[0-12]+-[0-31]+匹配xxxx-xx-xx的日期格式

以上就是关于正则表达式的一些知识点,如果想查看关于正则表达式的应用,可以查看博主的另一篇博客PHP利用curl实现爬虫,最后博主就给大家安利一个比较的好的在线测试正则表达式的网站regexr

转载于:https://www.cnblogs.com/newtol/p/10159131.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值