后端基础PHP—正则表达
后端基础PHP—正则表达式
1、正则表达式的介绍
2、正则表达式的语法
一、正则表达式的介绍
正则表达式的介绍
· 正则表达式,又称规则表达式,通过一种特殊的语言来挑选符合条件的数据
· 在代码中简写,regex、regexp、RE
· 计算机科学的一个概念,通常被用来检索、替换那些符合某个模式(规则)的文本
正则表达式的特点
· 灵活性、逻辑性和功能性非常强
· 可以迅速地用极简的方式达到字符串的复杂控制
· 入门较困难,熟悉之后较容易
正则表达式的用途
· 判断字符串是否符合某一规则(判断手机号、邮箱规则)
· 从一个字符串中找出符合规则的所有字符串(取HTML标签名)
正则表达式使用小规则
PHP中使用正则规则一定要加代表正则的标识 => //
preg_match_all (正则表达式、匹配字符串、匹配到的东西放入数组)
返回匹配到的次数
二、正则表达式的语法
正则表达式的语法—字符
常用转义符
· /d 数字 匹配数字
· /D 非数字 匹配除数字以外的所有东西
· /s 空白符 (空格符、制表符、换页符)
· /S 非空白字符
· /w 单词字符(26个英文字母+数字+下划线)
· /W 非单词字符
自定义字符结合
字符合集:[单个字符或字符区间],用于匹配集合内字符合集
eg:[a-z] 表示这26个小写字母
$a=preg_match_all('/[a-z]/','hslfhufh84j');
var_dump($a);
=> string(9)
[0-9a-z] 表示0-9这10个数字和a-z这26个小写字母
[135a-h] 表示包含数字1,3,5和字母a-h这8个小写字母
· ^ 非集
[^0-9] 表示匹配所有非数字字符
[^a-zA-Z] 表示匹配所有非字母字符
正则表达式的语法—关键字
· () => 和数字一样,代表这是一个整体
· ^ => 匹配 输入字符串的第一个字符
· $ => 匹配输入字符串的最后一个字符
· . => 通配符[代表任意字符][不匹配换行]
· * => 匹配0次或者多次
· + => 匹配1次或者多次
· \ => 转义字符
· | => 两项之间选择一个,类似or
限定符
· {n} => eg:0{8} 意思是指只有连起来的8个零才能被匹配到
· {n,} => eg:0{2,} 意思是指只要有两个零以上就会被匹配到
· {n,m} => eg:0{2,4} 意思是指最少匹配2个0,最多匹配4个0
Ps:被匹配时,默认匹配最多的次数
修饰符
· /i => 不区分大小写
· /A => 匹配规则必须从头开始匹配
· /s => 将匹配一切字符
· /x => 正则表达式中的空白字符会被忽略
后端基础PHP—正则表达的更多相关文章
- Python学习之路——迭代器、生成器、算法基础、正则
一.迭代器: 迭代器是访问集合元素的一种方式. 迭代器对象是从集合的第一个元素开始访问,直到所有的元素被访问完结束. 迭代器只能往前不会后退,不过这也没什么,因为人们很少在迭代途中往后退. 另外,迭代 ...
- Python之面向对象和正则表达(代数运算和自动更正)
面向对象 一.概念解释 面对对象编程(OOP:object oriented programming):是一种程序设计范型,同时也是一种程序开发的方法,实现OOP的程序希望能够在程序中包含各种独立而又 ...
- Javascript正则构造函数与正则表达字面量&&常用正则表达式
本文不讨论正则表达式入门,即如何使用正则匹配.讨论的是两种创建正则表达式的优劣和一些细节,最后给出一些常用正则匹配表达式. Javascript中的正则表达式也是对象,我们可以使用两种方法创建正则表达 ...
- HttpGet协议与正则表达
使用HttpGet协议与正则表达实现桌面版的糗事百科 写在前面 最近在重温asp.net,找了一本相关的书籍.本书在第一章就讲了,在不使用浏览器的情况下生成一个web请求,获取服务器返回的内容.于 ...
- js正则表达test、exec和match的区别
test的用法和exec一致,只不过返回值是 true false. 以前用js很少用到js的正则表达式,即使用到了,也是诸如邮件名称之类的判断,网上代码很多,很少有研究,拿来即用. 最近开发遇到一些 ...
- 正则表达示 for Python3
前情提要 从大量的文字内容中找到自己想要的东西,正则似乎是最好的方法.也是写爬虫不可缺少的技能.所以,别墨迹了赶紧好好学吧! 教程来自http://www.runoob.com/python3/pyt ...
- JS写法 数值与字符串的相互转换 取字符中的一部分显示 正则表达规则
http://www.imooc.com/article/15885 正则表达规则 <script type="text/javascript"> </scrip ...
- shell正则表达
shell正则表达 .*和.?的比较: 比如说匹配输入串A: 101000000000100 使用 1.*1 将会匹配到1010000000001,匹配方法:先匹配至输入串A的最后, 然后向前匹配,直 ...
- python 正则表达提取方法 (提取不来的信息print不出来 加个输出type 再print信息即可)
1,正则表达提取 (findall函数提取) import re a= "<div class='content'>你大爷</div>"x=re.finda ...
- grep 正则表达
常见的 grep 正则表达参数 -c # 显示匹配到得行的数目,不显示内容 -h # 不显示文件名 -i # 忽略大小写 -l # 只列出匹配行所在文件的文件名 -n # 在每一行中加上相对行号 -s ...
随机推荐
- CF351D Jeff and Removing Periods 题解
题目链接:CF 或者 洛谷 挺有意思的题,一开始看到了 \(start+k\times step\),以为是根号分治方向的题,结果发现这题还给了一个"重排"操作玩玩.所以这题其实算 ...
- Typora Mac中文破解版获取
作为程序员,markdown是非常好用的文本编辑语言,而Typora是非常好用的一款markdown编辑工具.Typora提供读者和作家的无缝体验.它删除了预览窗口,模式切换器,降低源代码的语法符号以 ...
- 小知识:Exadata平台去掉密码输错延迟10分钟登录
生产环境不评价,若是测试环境实在受不了偶尔一次因为密码输错就要等待10分钟才能登陆的限制. 那测试环境下,如何关闭这个限制呢?很简单: # vi /etc/pam.d/sshd --找到并注释掉下面这 ...
- 2023年多校联训NOIP层测试1
2023年多校联训NOIP层测试1 T1 luogu P6882 [COCI2016-2017#3] Imena \(50pts\) 赛场上被如何输入和判断是否合法薄纱了,赛后发现还有数字这一说,而且 ...
- java 从零开始手写 redis(五)过期策略的另一种实现思路
前言 java从零手写实现redis(一)如何实现固定大小的缓存? java从零手写实现redis(三)redis expire 过期原理 java从零手写实现redis(三)内存数据如何重启不丢失? ...
- DS18B20数字温度计 (二) 测温, ROM和CRC算法
目录 DS18B20数字温度计 (一) 电气特性, 寄生供电模式和远距离接线 DS18B20数字温度计 (二) 测温, ROM和CRC算法 DS18B20数字温度计 (三) 1-WIRE总线 ROM搜 ...
- phpBB3在Nginx反向代理中的X-Forwarded-For IP检查
记录一下phpBB3对反向代理中的IP处理机制 处理几个phpBB3项目迁移, 部分运行场景转移到内网, 需要外网通过nginx/openresty之类的网关反向代理进行访问. 在网关处已经正确配置了 ...
- 我的小程序之旅六:微信公众号授权登录(适用于H5小程序)
实现步骤 1 第一步:用户同意授权,获取code 2 第二步:通过code换取网页授权access_token 3 第三步:刷新access_token(如果需要) 4 第四步:拉取用户信息(需sco ...
- 实操开源版全栈测试工具RunnerGo安装(一)
Docker版安装文档 一.环境要求 1.1 部署服务器要求 操作系统:任何支持 Docker 的 Linux x86 CPU内存:最低要求 4C8G,推荐 8C16G 网络要求:可访问互联网 ...
- Redis原理再学习02:数据结构-动态字符串sds
Redis原理再学习:动态字符串sds 字符 字符就是英文里的一个一个英文字母,比如:a.中文里的单个汉字,比如:好. 字符串就是多个字母或多个汉字组成,比如字符串:redis,中文字符串:你好吗. ...