正则表达式掌握这些知识足以
目录
- 正则表达式基础
- 总结:
- 正则表达式进阶
每次做题或者看程序都会看到正则表达式,都会有点晕,今天就来整理一番
正则表达式基础
[ABC] 匹配集合中的任何字符
[^ABC] 匹配不在集合中的任何字符(相当于取反)
[A-Z]匹配ASCII码在指定范围区间的字符
在特殊字符前加上 \ 代表匹配特殊字符
快捷方式:
- \d 与任意数字匹配
- \w 匹配字母,数字,下划线
- \s 匹配空白字符,比如空格,tab,换行等
- \b 匹配的市单词边界(空格也是字符边界)
^ 代表一个字符串的开始;$ 代表一个字符串的结束
. 字符代表匹配任何单个字符,它只能出现在方括号以外
?字符指定一个字符,意味着该字符出现0次或者1次,另外一个作用是非贪婪模式
快捷方式取反:
- \D 匹配所有的非数字
- \W 匹配所有的非字符
- \S 匹配所有的非空白
{N} 表示在它之前的字符组出现N次
{M,N} 重复区间,M是下界而N是上界
\d{3,4} 既可以匹配3个数字也可以匹配4个数字,不过当有4个数字的时候,匹配的是4个数字,因为正则表达式默认的贪婪模式,尽可能的匹配更多字符,而使用非非贪婪模式,我们要在表达式后面加上?号
总结:
正则表达式进阶
分组()
这段正则表达式将文本分成了两组,第一组为0731,第二组为8825951
或者条件 |
非捕获分组(?:表达式)
有时我们不需要捕获某个分组的内容,但是又想使用分组的特性
分组的回溯引用
正则表达式还提供了一种引用之前匹配分组的机制,有些时候,我们或许会寻找到一个子匹配,改匹配接下来会再次出现。可以使用分组的回溯引用,使用\N可以引用编好为N的分组
通过这个例子,可以发现 \1 表示的就是第一个分组,在这里第一个分组匹配的是
font 所以\1 就代表font
正向先行断言(?=表达式)
指某个位置向右看,表示所在位置右侧必须能匹配表达式。
我喜欢你 我喜欢我 我喜欢我 喜欢 喜欢你
如何要取出喜欢这两个字,要求在喜欢后面有你,这个时候就要这么写:喜欢(?=你)
,这就是正向先行断言
反向先行断言 (?!表达式) 保证右边不能出现某字符
我喜欢你 我喜欢 我喜欢我 喜欢 喜欢你
如果要取出喜欢两个字,要求这个喜欢后面没有你,这个时候就要这么写:喜欢(?!你)
,这就是反向先行断言
正向后行断言 (?<=表达式) 指在某个位置向左看,表示所在位置左侧必须能匹配表达式
例如:如果要取出喜欢两个字,要求喜欢的前面有我,后面有你,这个时候就要这么写:
(?<=我)喜欢(?=你)
反向后行断言 (?<!表达式) 指在某个位置向左看,表示所在位置左侧不能匹配表达式
例如:如果要取出喜欢两个字,要求喜欢的前面没有我,后面没有你,这个时候就要这么写:
(?<!我)喜欢(?!你)。
正则在线测试工具:https://regexr-cn.com/#native_link#
正则练习:https://codejiaonang.com/#/course/regex_chapter1/0/0
正则表达式掌握这些知识足以相关推荐
- python正则表达式使用实例_正则表达式的基础知识,以及Python爬虫中的使用方法...
一.正则表达式 实际上爬虫一共就四个主要步骤: 明确目标(要知道你准备在哪个范围或者网站去搜索) 爬(将所有的网站内容全部爬下来) 取(去掉对我们没有用处的数据) 处理数据 我们在第上一篇文章中介绍的 ...
- 帮你梳理正则表达式的基础知识
正则表达式在我们平时的工作中相当的常用,无论是写jmeter脚本,或者写自动化脚本,都可能会用到正则表达式.这篇文章主要梳理正则表达式的常用知识点,并结合一些具体的例子,让大家能掌握使用正则表达式的正 ...
- C#正则表达式RegularExpression相关知识(Regex类使用详情)
C#正则表达式相关知识 本文档为本人学习总结,义务提供,不作为商用,侵权请联系删除 本文档部分内容为转载,转载处在下会标明 1. 原样匹配 任意字符:原样匹配任意字符 例如:123,会匹配一串字符中是 ...
- 常用的、现成的!正则表达式及基础知识
一.正则表达式的概念 1.它是对字符串执行模式匹配的强大工具,用来把规则说给计算机听 2.由正则部分和正则属性组成:正则部分用来描述规则,正则属性用来设置 3.表达式:var reg = /正则部分p ...
- 菜鸟python 正则表达式_python基础知识(进阶篇--正则表达式)
含义:检查一个字符串是否与某种模式匹配,由re模块提供. re.match() re.match(匹配的正则表达式,要匹配的字符串,标志位) //尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹 ...
- re正则表达式必备基础知识
Regular Expression Operations 正则表达式 正则表达式测试工具 一.原子 1.普通字符作为原子 2.非打印字符作为原子 3.通用字符作为原子 4.原子表 二.原子符 1.任 ...
- 【正则表达式教科书】正则表达式轻松入门知识总结
文章目录 @[toc] 一.了解正则表达式 1.1 什么是正则表达式? 1.2 正则表达式的特点 1.3 正则表达式的语法 1.3.1 简单的语法使用 1.3.2 语法规范 普通字符 非打印字符 特殊 ...
- 正则表达式语法基础知识
目录 1.正则表达式 2.正则表达式的使用 3.正则表达式中的特殊字符 (1)边界符 (2)字符类 (3)量词符 (4)用户名验证 (5)预定义类 (6)替换replace (7)正则表达式参数 1. ...
- Python—正则表达式的基础知识
文章目录 正则表达式 引入案例 python正则表达式的基础 简单函数的说明 单字符匹配规则 数量匹配规则 表示边界 匹配分组 正则表达式 正则表达式,又称规则表达式**.**(英语:Regular ...
最新文章
- AMD–7nm “Rome”芯片SOC体系结构,支持64核
- linux中权限的修改
- codeforce 154C - Double Profiles(hash)
- 【人体姿态估计2】Real-time Multi-person 2d pose estimation using part affinity fields_2017
- 《C++ Primer》13.1.3节练习
- mAP与IOU的简单介绍
- 前端:常用单词(JS,CSS,HTML)
- mysql文件_mysql 的各种文件详细说明
- HDU1582 AC Again【DFS】
- 如何在分屏浏览中并排使用两个Mac软件界面
- windows下使用vs工具查看dll是64位还是32位
- 面试宝典(二)之经典面试题(含详细答案)
- linux 程序网速监控软件,Linux实时网速监控软件ifstat简易教程
- 计算机硬件主流参数,小白秒成DIY大神 自学电脑硬件参数速成攻略
- age estimation阅读整理(一)
- 大数据命令,一文在手,全部都有(送纯净版文档)
- 忘记了MySQL的用户名和密码如何修改
- 点击密码框显示密码(点击密码框小眼睛可显示输入密码)
- 认识Hive,以及Hive的数据定义与数据操作,hive的数据查询和hive函数
- 盛世昊通微达国际联合出品《天下无拐》,还孩子们一片蓝天