目录

  • 正则表达式基础
    • 总结:
  • 正则表达式进阶

每次做题或者看程序都会看到正则表达式,都会有点晕,今天就来整理一番

正则表达式基础

[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

正则表达式掌握这些知识足以相关推荐

  1. python正则表达式使用实例_正则表达式的基础知识,以及Python爬虫中的使用方法...

    一.正则表达式 实际上爬虫一共就四个主要步骤: 明确目标(要知道你准备在哪个范围或者网站去搜索) 爬(将所有的网站内容全部爬下来) 取(去掉对我们没有用处的数据) 处理数据 我们在第上一篇文章中介绍的 ...

  2. 帮你梳理正则表达式的基础知识

    正则表达式在我们平时的工作中相当的常用,无论是写jmeter脚本,或者写自动化脚本,都可能会用到正则表达式.这篇文章主要梳理正则表达式的常用知识点,并结合一些具体的例子,让大家能掌握使用正则表达式的正 ...

  3. C#正则表达式RegularExpression相关知识(Regex类使用详情)

    C#正则表达式相关知识 本文档为本人学习总结,义务提供,不作为商用,侵权请联系删除 本文档部分内容为转载,转载处在下会标明 1. 原样匹配 任意字符:原样匹配任意字符 例如:123,会匹配一串字符中是 ...

  4. 常用的、现成的!正则表达式及基础知识

    一.正则表达式的概念 1.它是对字符串执行模式匹配的强大工具,用来把规则说给计算机听 2.由正则部分和正则属性组成:正则部分用来描述规则,正则属性用来设置 3.表达式:var reg = /正则部分p ...

  5. 菜鸟python 正则表达式_python基础知识(进阶篇--正则表达式)

    含义:检查一个字符串是否与某种模式匹配,由re模块提供. re.match() re.match(匹配的正则表达式,要匹配的字符串,标志位) //尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹 ...

  6. re正则表达式必备基础知识

    Regular Expression Operations 正则表达式 正则表达式测试工具 一.原子 1.普通字符作为原子 2.非打印字符作为原子 3.通用字符作为原子 4.原子表 二.原子符 1.任 ...

  7. 【正则表达式教科书】正则表达式轻松入门知识总结

    文章目录 @[toc] 一.了解正则表达式 1.1 什么是正则表达式? 1.2 正则表达式的特点 1.3 正则表达式的语法 1.3.1 简单的语法使用 1.3.2 语法规范 普通字符 非打印字符 特殊 ...

  8. 正则表达式语法基础知识

    目录 1.正则表达式 2.正则表达式的使用 3.正则表达式中的特殊字符 (1)边界符 (2)字符类 (3)量词符 (4)用户名验证 (5)预定义类 (6)替换replace (7)正则表达式参数 1. ...

  9. Python—正则表达式的基础知识

    文章目录 正则表达式 引入案例 python正则表达式的基础 简单函数的说明 单字符匹配规则 数量匹配规则 表示边界 匹配分组 正则表达式 正则表达式,又称规则表达式**.**(英语:Regular ...

最新文章

  1. AMD–7nm “Rome”芯片SOC体系结构,支持64核
  2. linux中权限的修改
  3. codeforce 154C - Double Profiles(hash)
  4. 【人体姿态估计2】Real-time Multi-person 2d pose estimation using part affinity fields_2017
  5. 《C++ Primer》13.1.3节练习
  6. mAP与IOU的简单介绍
  7. 前端:常用单词(JS,CSS,HTML)
  8. mysql文件_mysql 的各种文件详细说明
  9. HDU1582 AC Again【DFS】
  10. 如何在分屏浏览中并排使用两个Mac软件界面
  11. windows下使用vs工具查看dll是64位还是32位
  12. 面试宝典(二)之经典面试题(含详细答案)
  13. linux 程序网速监控软件,Linux实时网速监控软件ifstat简易教程
  14. 计算机硬件主流参数,小白秒成DIY大神 自学电脑硬件参数速成攻略
  15. age estimation阅读整理(一)
  16. 大数据命令,一文在手,全部都有(送纯净版文档)
  17. 忘记了MySQL的用户名和密码如何修改
  18. 点击密码框显示密码(点击密码框小眼睛可显示输入密码)
  19. 认识Hive,以及Hive的数据定义与数据操作,hive的数据查询和hive函数
  20. 盛世昊通微达国际联合出品《天下无拐》,还孩子们一片蓝天

热门文章

  1. vue 上传附件设置必填项
  2. Java反射性能探讨
  3. OSG开发笔记(十九):OSG文字显示
  4. 打造自己的专属--VSCode主题(仿HBuilderX绿柔主题配色)
  5. 鸿蒙os 2.0跑分,麒麟9000+8GB内存 首发鸿蒙系统华为MatePad Pro2跑分首次曝光
  6. PPT文档如何进行加密操作
  7. SQL系列——存储过程
  8. visual studio编译boost1.73.0静态库32位和64位
  9. SAP ABAP SEARCH HELP F4搜索帮助常用函数
  10. elementUI表格筛选统计数量