【正则】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{ ...
随机推荐
- bzoj 5218: [Lydsy2017省队十连测]友好城市
题意: 这题显然直接tarjan是做不了的. 这里安利另一个求SCC的算法Kosaraju,学习的话可以见这篇博客 于是结合莫队,我们有了个暴力. 发现主要瓶颈是dfs过程中找最小的未经过的点,我们用 ...
- 移动端px自动转化为rem
注:不转换的px用大写PX代替 lib-flexible 作用:让网页根据设备dpr和宽度,利用viewport和html根元素的font-size配合rem来适配不同尺寸的移动端设备 安装:cnpm ...
- 洛谷 P5686 [CSP-SJX2019]和积和
传送门 思路 应用多个前缀和推出式子即可 \(30pts\): 首先如果暴力算的话很简单,直接套三层循环就好了(真的是三层!!最后两个\(sigma\)一起算就好了) \[\sum_{l = 1}^{ ...
- OpenvSwitch系列之五 网桥特性功能配置
Open vSwitch系列之一 Open vSwitch诞生 Open vSwitch系列之二 安装指定版本ovs Open vSwitch系列之三 ovs-vsctl命令使用 Open vSwit ...
- 2019年9月Github上最热门的JavaScript开源项目
2019年9月Github上最热门的JavaScript开源项目 前端开发 前端开发 微信号 qianduan1024 功能介绍 专注于Web前端技术文章分享,包含JavaScript.HTML5 ...
- 使用码云,GitHub进行版本控制,并通过WebHook进行自动部署
我们通常需要在 PUSH 代码到远程仓库时,线上环境会自动进行代码同步,这时候就需要用到WebHook,它会自动回调我们设定的http地址. 通过请求我们自已编写的脚本,来拉取代码,实现与远程仓库代码 ...
- centos7下mysql5.7的安装与配置
centos7下MySQL5.7的安装与配置 下载 下载地址 根据系统和版本选择红框中的四个RPM包下载即可,然后放到centos7系统中的/opt目录下,等待稍后安装. 安装前的准备 1. 检查系统 ...
- 使用 C# 实现 CJ-T188 水表协议和 DL-T645 电表协议的解析与编码
一.协议的定义 要对某种协议进行编解码操作,就必须知道协议的基本定义,首先我们来看一下 CJ/T188 的数据帧定义(协议定义),了解请求数据与响应数据的基本结构. 1.1 CJ/T188 水表通讯协 ...
- go-客户信息关系系统
客户信息关系系统 项目需求分析 1) 模拟实现基于文本界面的< 客户信息管理软件>. 2) 该软件能够实现对客户对象的插入.修改和删除(用切片实现),并能够打印客户明细表 项目的界面设计 ...
- Oracle:Redhat 7.4+Oracle Rac 11.2.0.4 执行root.sh报错处理
一.报错信息 二.原因分析 因为RHEL 7使用systemd而不是initd运行进程和重启进程,而root.sh通过传统的initd运行ohasd进程 三.解决办法 在RHEL 7中ohasd需要被 ...