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

 更新时间:2022-08-04 01:15:37   作者:佚名   我要评论(0)

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

一、正则的含义

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

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

  • 数据分析时数据获取的文本筛选
  • 进行爬虫时,网页数据的匹配
  • 写前端代码的时候,用户输入数据的验证
  • 测试人员对请求结果的数据验证
  • 批量文本编辑,比如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"。

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

您可能感兴趣的文章:
  • Golang爬虫及正则表达式的实现示例
  • 正则表达式用法详解
  • C#正则表达式Regex类的用法
  • jmeter正则表达式实例详解

相关文章

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

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

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

    常用正则表达式之密码格式验证大全

    目录前言示例1种只能由1种组成至少包含1种2种只能由2种组成至少包含2种任意2种组成3种至少包含3种详解吐槽正文附简单的正则表达式例子最后前
    2022-08-04
  • Snort中pcre和正则表达式的使用详解

    Snort中pcre和正则表达式的使用详解

    目录1. 题目描述2. 解决方案2.1 第一条检测规则2.2 第二条检测规则3. 检测规则1. 题目描述 If snort see two packets in a TCP flow with fi
    2022-08-04
  • 正则表达式中.+?与.*?的区别

    正则表达式中.+?与.*?的区别

    . 匹配除“\r\n”之外的任何单个字符。要匹配包括“\r\n”在内的任何字符,请使用像“[\s\S]”的模式。 ?匹
    2022-08-04
  • 一看就懂的正则表达式教程

    一看就懂的正则表达式教程

    目录案例引入正则表达式命名规范结构组成用途场景Java中的正则校验正则元字符正则:普通字符正则:\d 正则:\D正则:\w正则:\W 正则:\s正则
    2022-08-04
  • 一行正则表达式判断质数的代码

    一行正则表达式判断质数的代码

    目录背景示例正则分析原理优化空间性能测试总结背景 昨天无意中看到一篇大佬的文章Primality regex(正则表达式判断质数),惊为天人,正则表
    2022-08-04
  • 正则表达式之字符串模式匹配实例详解

    正则表达式之字符串模式匹配实例详解

    目录前言什么是正则表达式字符范围匹配元字符多次重复匹配定位匹配贪婪模式与非贪婪模式表达式分组结语前言 今天我们来学习正则表达式,正则
    2022-08-04
  • 正则表达式中问号(?)的正确用法详解

    正则表达式中问号(?)的正确用法详解

    目录1、直接跟随在子表达式后面2、非贪婪匹配3、非获取匹配4、断言参考资料:正则表达式中“?”的用法大概有以下几种 1、直接跟随
    2022-08-04
  • 利用正则表达式匹配浮点型数据

    利用正则表达式匹配浮点型数据

    目录前言:正则表达式Java代码附:正则表达式(同时匹配整型数和浮点数)总结前言: 在开发中我们常常会使用到正则表达式,但很奇怪的是,每
    2022-08-04
  • jsp中文乱码问题的简单解决方法

    jsp中文乱码问题的简单解决方法

    简单解决jsp中文乱码问题 初学jsp制作一个简单的响应页面 具体代码如下: <form action="test.jsp"> username : <input type="text" nam
    2022-08-04

最新评论