正则表达式详析+常用示例

目录
  • 一、正则的含义
  • 二、正则表达式的应用场景
  • 三、常用的格式校验
  • 四、元字符
  • 五、反义代码
  • 六、限定符
  • 七、分组匹配
  • 八、贪婪与非贪婪
  • 九、零宽断言
  • 十、常用的实用正则表达式

一、正则的含义

正则表达式就是用来操作字符串的一种逻辑公式

二、正则表达式的应用场景

  • 数据分析时数据获取的文本筛选
  • 进行爬虫时,网页数据的匹配
  • 写前端代码的时候,用户输入数据的验证
  • 测试人员对请求结果的数据验证
  • 批量文本编辑,比如Sublime Textnodepad++EditPlus等记事本软件全都支持正则表达式的使用

三、常用的格式校验

  • 邮箱验证
  • IP地址验证
  • 电话号码验证
  • 身份证号码验证
  • 密码强度验证
  • 网址验证
  • 汉字验证 [\u4e00-\u9fa5]
  • ......
  • 凡是有一定规律的,批量的数据获取,都可以使用正则表达式来完成

四、元字符

字符 说明
. 代表的是换行符以外的任意字符。 换行符是:(不同的操作系统有不同的换行符) \n \r\n
\w 匹配字母、数字、下划线、汉字的一个字符
\s 匹配任意的空白符
\d 匹配数字
^ 匹配字符串的开始
$ 匹配字符串的结束

五、反义代码

反义代码的意思就是与元字符表示相反的代码

  • \W 匹配的任意 不是 字母、数字、下划线、汉字 的字符
  • \S 匹配任意 不是 空白符的字符
  • \D 匹配任意 不是 数字的字符

六、限定符

符号 说明
* 代表的重复0次或者是多次
+ 代表的重复1次或者是多次
代表的是重复0次或者是1次
{n} 重复n次,举例:{3}指的就是重复3次
{n,} 重复n次或者更多次数
{n,m} 重复n次到m次,所以这里m一般要比n

七、分组匹配

  • findall / search/match 区别¶
  • findall 是查找所有的
  • search 匹配第一个
  • match 匹配开头的

八、贪婪与非贪婪

  • 贪婪的意思是尽可能多的匹配
  • 非贪婪的意思就是尽可能少的匹配
  • 非贪婪操作符是问号:'符号?'
  • ?号代表的是重复0次或者是1次,再加一个问号,代表的是非贪婪操作,那么最后就只匹配0次

分支条件匹配:

使用 | 来分隔开不同的正则表达式,代表着 条件1 或 条件2 或条件3 ......

九、零宽断言

  • 匹配"正则表达式reg"前边的位置 (?=reg)
  • 匹配"正则表达式reg"后边的位置 (?<=reg)
  • 匹配后边跟的不是"正则表达式reg"的位置 (?!reg)
  • 匹配前边不是"正则表达式reg"的位置 (?<!reg)

十、常用的实用正则表达式

  •   输入零和非零开头的数字:"^(0|[1-9][0-9]*)$"。
  •   输入有两位小数的正实数:"^[0-9]+(.[0-9]{2})?$"。
  •   输入有1~3位小数的正实数:"^[0-9]+(.[0-9]{1,3})?$"。
  •   输入非零的正整数:"^"+?[1-9][0-9]*$"。
  •   输入非零的负整数:"^"-[1-9][]0-9"*$。
  •   输入长度为3的字符:"^.{3}$"。
  •   输入由26个英文字母组成的字符串:"^[A-Za-z]+$"。
  •   输入由26个大写英文字母组成的字符串:"^[A-Z]+$"。
  •   输入由26个小写英文字母组成的字符串:"^[a-z]+$"。
  •   输入由数字和26个英文字母组成的字符串:"^[A-Za-z0-9]+$"。
  •   输入由数字、26个英文字母或者下划线组成的字符串:"^"w+$"。
  •   验证用户密码:"^[a-zA-Z]"w{5,17}$"正确格式为:以字母开头,长度在6~18之间,只能包含字符、数字和下划线。
  •   验证是否含有^%&’,;=?$""等字符:"[^%&’,;=?$"x22]+"。
  •   只能输入汉字:"^["u4e00-"u9fa5]{0,}$"
  •   验证Email地址:"^"w+([-+.]"w+)*@"w+([-.]"w+)*"."w+([-.]"w+)*$"。
  •   验证InternetURL:"^http://(["w-]+".)+["w-]+(/["w-./?%&=]*)?$"。
  •   验证电话号码:"^("("d{3,4}-)|"d{3.4}-)?"d{7,8}$"正确格式为:"XXX-XXXXXXX"、"XXXX- XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX"。
  •   验证身份证号(15位或18位数字):"^"d{15}|"d{18}$"。
  •   验证一年的12个月:"^(0?[1-9]|1[0-2])$"正确格式为:"01"~"09"和"1"~"12"。
  •   验证一个月的31天:"^((0?[1-9])|((1|2)[0-9])|30|31)$"正确格式为;"01"~"09"和"1"~"31"。

到此这篇关于正则表达式详析+常用示例的文章就介绍到这了,更多相关正则表达式 内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 正则表达式用法详解

    正则表达式之基本概念 在我们写页面时,往往需要对表单的数据比如账号.身份证号等进行验证,而最有效的.用的最多的便是使用正则表达式来验证.那什么是正则表达式呢? 正则表达式(Regular Expression)是用于描述一组字符串特征的模式,用来匹配特定的字符串. 它的应用非常广泛,特别是在字符串处理方面.其常见的应用如下: 验证字符串,即验证给定的字符串或子字符串是否符合指定的特征,例如,验证是否是合法的邮件地址.验证是否是合法的HTTP地址等等. 查找字符串,从给定的文本当中查找符合指定特征

  • C#正则表达式Regex类的用法

    一.C#正则表达式符号模式 字 符 描 述 \ 转义字符,将一个具有特殊功能的字符转义为一个普通字符,或反过来 ^ 匹配输入字符串的开始位置 $ 匹配输入字符串的结束位置 * 匹配前面的零次或多次的子表达式 + 匹配前面的一次或多次的子表达式 ? 匹配前面的零次或一次的子表达式 {n} n是一个非负整数,匹配前面的n次子表达式 {n,} n是一个非负整数,至少匹配前面的n次子表达式 {n,m} m和n均为非负整数,其中n<=m,最少匹配n次且最多匹配m次 ? 当该字符紧跟在其他限制符(*,+,?

  • Golang爬虫及正则表达式的实现示例

    目录 字符 数量限定 其他 爬虫 补充:正则表达式加golang爬虫爬取经典案例豆瓣top250 最近学习go,爬取网站数据用到正则表达式,做个总结: Go中正则表达式采用RE2语法(具体是啥咱也不清楚): 字符 . --匹配任意字符 e.g: abc. 结果: abcd,abcx,abc9; [] --匹配括号中任意一个字符 e.g: [abc]d 结果:ad,cd,1d: - --[-]中表示范围 e.g: [A-Za-z0-9]: ^ --[^]中表示除括号中的任意字符 e.g:[^xy]

  • jmeter正则表达式实例详解

    过年前产假归来,jmeter很多知识生疏了,这两天打开jmeter摸索了几下,老了记不住,还是准备弄个jmeter系列随笔吧. 言归正传,使用jmeter时经常有这样的情况:一个完整的操作流程,需先完成某个操作,获得某个值或数据信息,然后才能进行下一步的操作(也就是常说的关联/将上一个请求的响应结果作为下一个请求的参数): 在jmeter中,利用正则表达式提取器来轻松帮助我们完成这一动作.正则表达式就是用于描述这些规则的工具.换句话说,正则表达式就是记录文本规则的代码.学习正则表达式最好就是从实

  • 正则表达式详析+常用示例

    目录 一.正则的含义 二.正则表达式的应用场景 三.常用的格式校验 四.元字符 五.反义代码 六.限定符 七.分组匹配 八.贪婪与非贪婪 九.零宽断言 十.常用的实用正则表达式 一.正则的含义 正则表达式就是用来操作字符串的一种逻辑公式 二.正则表达式的应用场景 数据分析时数据获取的文本筛选 进行爬虫时,网页数据的匹配 写前端代码的时候,用户输入数据的验证 测试人员对请求结果的数据验证 批量文本编辑,比如Sublime Text或nodepad++.EditPlus等记事本软件全都支持正则表达式

  • ruby 正则表达式详解及示例代码

    在编写puppet的pp文件中,会用到很多ruby的正则表达式,常用的正则如下: 正则表达式: [codesyntax lang="ruby"] {}: 重复次数(如 {4}表示前面的会重复出现恰好4次) {m,n}: 前面元素最少出现m次,最多出现n次 []: 范围描述符(如 [a-z]表示在a-z范围内的一个字母) \w: 字符或数字,相当于[0-9A-Za-z] \W: 非字母或数字 \s: [\t\n\r\f]空字符,相当于[\t\n\r\f] \S: 非空字符 \d: [0-

  • python模块之re正则表达式详解

    一.简单介绍 正则表达式是一种小型的.高度专业化的编程语言,并不是python中特有的,是许多编程语言中基础而又重要的一部分.在python中,主要通过re模块来实现. 正则表达式模式被编译成一系列的字节码,然后由用c编写的匹配引擎执行.那么正则表达式通常有哪些使用场景呢? 比如为想要匹配的相应字符串集指定规则: 该字符串集可以是包含e-mail地址.Internet地址.电话号码,或是根据需求自定义的一些字符串集: 当然也可以去判断一个字符串集是否符合我们定义的匹配规则: 找到字符串中匹配该规

  • 比较全面的C 、Java、JavaScript中的正则表达式详解

    什么是正则表达式? 正则表达式(Regular Expression) 就是用某种模式去匹配一类字符串的公式.如你要在一篇文章中查找第一个字是"罗"最后一个字是"浩"的三个字的姓名,即"罗 * 浩":那么"罗 * 浩"就是公式,也称作 模式(Pattern) ,这篇文章就是 要匹配的串( 或叫文本 text) .再如,你要检查输入的一个字符串是否是 126 邮箱的格式,你得制定一个规则去查检,这种规则就是正则表达式. 从入门开

  • Java正则表达式的语法及示例解析

    1匹配验证-验证Email是否正确 Java | 复制 public static void main(String[] args) { // 要验证的字符串 String str = "service@xsoftlab.net"; // 邮箱验证规则 String regEx = "[a-zA-Z_]{1,}[0-9]{0,}@(([a-zA-z0-9]-*){1,}\\.){1,3}[a-zA-z\\-]{1,}"; // 编译正则表达式 Pattern pat

  • Spring集成Redis详解代码示例

    本文章从头开始介绍Spring集成Redis的示例. Eclipse工程结构 如下图为我的示例工程的结构图,采用Maven构建.其中需要集成Spring,因此需要beans.xml文件配置spring的依赖注入,redis.properties配置连接服务器的配置信息. 其中工程中beans.xml和redis.properties文件直接放在了根目录,有需要的读者可以放到resource目录中. POM依赖 如下为示例POM依赖,Spring集成redis需要依赖的包为:jedis包,spri

  • PHP实现正则表达式分组捕获操作示例

    本文实例讲述了PHP实现正则表达式分组捕获操作.分享给大家供大家参考,具体如下: 经过测试,发现php正则表达式获取分组捕获是从$0开始,而平时工作中JavaScript中的正则是$1..$9 在提取项目代码中的汉字时,因为当时操作速度很快(赶时间),很担心当时.properties的文件{\d}的数字顺序搞错了: 1.可能从{1}开始,而不是从{0}开始 2.可能跳着写了,比如第一个是{0}第二个需要替换的地方却写着{2} 因为使用人工手动操作的,所以这种情况是难以避免,只能说减少误操作.写完

  • Python面向对象总结及类与正则表达式详解

    Python3 面向对象 -------------------------------------------------------------------------------- 一丶面向对象技术简介 •类(Class): 用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例. •方法:类中定义的函数. •类变量:类变量在整个实例化的对象中是公用的.类变量定义在类中且在函数体之外.类变量通常不作为实例变量使用. •数据成员:类变量或者实例变

  • GitHub上77.9K的Axios项目有哪些值得借鉴的地方详析

    目录 前言 一.Axios 简介 二.HTTP 拦截器的设计与实现 2.1 拦截器简介 2.2 任务注册 2.3 任务编排 2.4 任务调度 三.HTTP 适配器的设计与实现 3.1 默认 HTTP 适配器 3.2 自定义适配器 四.CSRF 防御 4.1 CSRF 简介 4.2 CSRF 防御措施 4.2.1 检查 Referer 字段 4.2.2 同步表单 CSRF 校验 4.2.3 双重 Cookie 防御 4.3 Axios CSRF 防御 五.参考资源 总结 前言 Axios 是一个基

  • 分位数回归模型quantile regeression应用详解及示例教程

    目录 什么是分位数? 什么是分位数回归? statsmodels中的分位数回归 分位数回归与线性回归 xgboost的分位数回归 普通最小二乘法如何处理异常值? 它对待一切事物都是一样的--它将它们平方! 但是对于异常值,平方会显著增加它们对平均值等统计数据的巨大影响. 我们从描述性统计中知道,中位数对异常值的鲁棒性比均值强. 这种理论也可以在预测统计中为我们服务,这正是分位数回归的意义所在--估计中位数(或其他分位数)而不是平均值. 通过选择任何特定的分位数阈值,我们既可以缓和异常值,也可以调

随机推荐