【正则】day01
正则表达式
一、概述
验证
网络爬虫。
概念:
具有语法格式的字符串。
函数
PCRE
1、perl语言正则语法兼容。(java c)
2、速度快,效率高。
POSIX
1、效率不高
2、安全隐患。
3、windows无法运行。
二、正则表达式的应用
preg_match_all(string $pattern,string $subject,array $match)
功能:正则匹配
参数:
pattern 正则表达式
subject 要进行匹配的字符串
match 匹配到的结果
返回:匹配到的次数。
语法:
- 定界符
- 原子
- 元字符
- 模式修正符
- 定界符
一个正则表达式必须有定界符。除了数字,字母、下划线,其他都可以作为定界符。而行业中最常用的定积分是 "/",定界符是成对出现的。
- 原子
原子是正则表达式的最小组成单位。一个正则表达式要想有意义,则至少有一个原子。
a、数字、字母、下划线,所有的打印字符都叫原子。
b、非打印字符。
\n 换行
c、需要进行转义的字符。具有特殊含义的字符。例如:元字符
d、具有特殊含义的原子
\d 代表所有的数字
\D 代表了所有的非数字
\w 数字、字母、下划线
\W 非数字、字母、下划线
\s 代表了所有的空白
\S 代表了所有的非空白
e、自定义原子表
[] 指定原子的范围,例如:a-z 代表了所有的小写英文字母
A-Z 代表了所有的大写英文字母
0-9 代表了所有的数字
可以同时给出多个范围,多个范围之间不需要间隔符号。
例如:a-z0-9
在自定义原子表中 ^代表 非
f、. 任意原子
元字符
元字符是用来修饰原子的。
* 代表被修饰的原子可以出现0次或者多次。
+ 代表被修饰的原子可以出现1次或者多次。
?代表被修饰的原子可以出现0次或者1次。
{m} 代表被修饰的原子可以出现m次。
{n,m} 代表被修饰的原子可以出现最少n最多m次。
n<=出现的次数<=m
{n,} 代表被修饰的原子可以出现最少n最对不限制
n<=出现的次数
| 或
^和\A 代表以^和\A修饰的字符的作为开始
$和\Z 代表以$和\Z修饰的字符的作为结束
()
- 子模式
- 改变匹配的范围
- 反向引用
\b和\B \b代表字符边界,\B 代表了非字符边界
- 模式修正符
模式修正符是用来修正正则表达式的。模式修正符是写在正则表达式的定界符外面的。
i :使正则表达式不区分大小写。
正则验证邮箱原理图片:

正则验证注册原理图片

【正则】day01的更多相关文章
- Javascript正则对象方法与字符串正则方法总结
正则对象 var reg = new Regexp('abc','gi') var reg = /abc/ig 正则方法 test方法(测试某个字符串是否匹配) var str = 'abc123'; ...
- C#-正则,常用几种数据解析-端午快乐
在等待几个小时就是端午节了,这里预祝各位节日快乐. 这里分享的是几个在C#中常用的正则解析数据写法,其实就是Regex类,至于正则的匹配格式,请仔细阅读正则的api文档,此处不具体说明,谢谢. 开始吧 ...
- Javascript 中 with 的替代方案和String 中的正则方法
这几天在升级自己的MVVM 框架,遇到很多小问题,就在这里统一解决了. with 语法 在代码中,要执行这么一个函数 function computeExpression(exp, scope) { ...
- JavaScript与PHP中正则
一.JavaScript 有个在线调试正则的工具,点击查看工具.下面的所有示例代码,都可以在codepen上查看到. 1.创建正则表达式 var re = /ab+c/; //方式一 正则表达式字面量 ...
- Java正则速成秘籍(一)之招式篇
导读 正则表达式是什么?有什么用? 正则表达式(Regular Expression)是一种文本规则,可以用来校验.查找.替换与规则匹配的文本. 又爱又恨的正则 正则表达式是一个强大的文本匹配工具,但 ...
- Java正则速成秘籍(二)之心法篇
导读 正则表达式是什么?有什么用? 正则表达式(Regular Expression)是一种文本规则,可以用来校验.查找.替换与规则匹配的文本. 又爱又恨的正则 正则表达式是一个强大的文本匹配工具,但 ...
- Java正则速成秘籍(三)之见招拆招篇
导读 正则表达式是什么?有什么用? 正则表达式(Regular Expression)是一种文本规则,可以用来校验.查找.替换与规则匹配的文本. 又爱又恨的正则 正则表达式是一个强大的文本匹配工具,但 ...
- python浅谈正则的常用方法
python浅谈正则的常用方法覆盖范围70%以上 上一次很多朋友写文字屏蔽说到要用正则表达,其实不是我不想用(我正则用得不是很多,看过我之前爬虫的都知道,我直接用BeautifulSoup的网页标签去 ...
- [Python基础知识]正则
import re str4 = r"^http://qy.chinahr.com/cvm/preview\?cvid=\w{24,25}&from=sou>id=\w{ ...
随机推荐
- WPF 获取系统 DPI 的多种方法
原文:WPF 获取系统 DPI 的多种方法 WPF 获取系统 DPI 的多种方法 由于 WPF 的尺寸单位和系统的 DPI 相关,我们有时需要获取 DPI 值来进行一些界面布局的调整,本文汇总了一些 ...
- 使用adb安装apk到手机
[ADB]Android debug bridge.Android手机实际是基于Linux系统的.通过USB线将android手机与电脑连起来,在电脑上dos命令行中敲adb shell命令,可以登录 ...
- Python开发GUI实战:图片转换素描画工具!
奋斗没有终点 好好学习72变,因为将来 没有人能替你阻挡81难 . 生如蝼蚁,当有鸿鹄之志: 命如纸薄,应有不屈之心 . 今天被这句话触动了,所以开篇分享给大家.鸡汤有毒,但有时大家却靠它激励自己 ...
- DOS命令行操作MySQL常用命令
平时用可视化界面用惯了,如果紧急排查问题,没有安装可视化工具的话,只能通过命令来看了. 以备不时之需,我们要熟悉一下命令行操作MySQL. 打开DOS命令窗口:WIN + R 输入cmd,回车 然后输 ...
- RabbitMQ的消息确认ACK机制
1.什么是消息确认ACK. 答:如果在处理消息的过程中,消费者的服务器在处理消息的时候出现异常,那么可能这条正在处理的消息就没有完成消息消费,数据就会丢失.为了确保数据不会丢失,RabbitMQ支持消 ...
- C# - VS2019通过重写pictureBox实现简单的桌面截图功能
前言 通过创建客制化组件(继承pictureBox),新增属性和构造方法,实现屏幕截图时需要用到的功能点.再通过监控鼠标按下.移动和释放,来获取起始点区域.最后通过操作BMP图像,实现截图的新增.修改 ...
- 解决pip使用异常No module named 'pip'
场景 在使用pip进行升级时 python install --upgrade named pip 时提示: No module named pip 注: 博客: https://blog.csdn. ...
- CDN(Content Delivery Network)原理
CDN即内容分发网络,一般包括分发服务系统,负载均衡系统和管理系统. 分发服务系统,其基本的工作单元就是各个cache服务器.负责直接响应用户请求,将内容快速分发到用户:同时还负责内容更新,保证和源站 ...
- SSM框架之Mybatis(3)dao层开发
Mybatis(3)dao层开发 以实现类完成CRUD操作 1.持久层dao层接口的书写 src\main\java\dao\IUserDao.java package dao; import dom ...
- node设置跨域白名单
// 判断origin是否在域名白名单列表中 function isOriginAllowed(origin, allowedOrigin) { if (_.isArray(allowedOrigin ...