码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 正则表达式 Regular Expression学习


     该文章内容为以下视频的学习笔记:

    10分钟快速掌握正则表达式_哔哩哔哩_bilibili正则表达式在线测试工具:https://regex101.com/, 视频播放量 441829、弹幕量 1076、点赞数 19330、投硬币枚数 13662、收藏人数 26242、转发人数 2768, 视频作者 奇乐编程学院, 作者简介 ,相关视频:正则表达式30分钟入门40分钟进阶(绝对能学会),【无废话30分钟】Lua快速入门教程 - 4K超清,正则表达式15分钟速成,2022最新 彻底搞懂正则表达式,20分钟学完一遍python基础,一个10分钟的numpy入门教程,15分钟带你快速掌握正则表达式,硬核Python进阶篇 - 一小时掌握正则表达式 【正则表达式,re,Python,正则表达式实例】,Docker 是什么?30秒听懂。,Python小技巧:装饰器(Decorator)icon-default.png?t=N7T8https://www.bilibili.com/video/BV1da4y1p7iZ/?spm_id_from=333.1007.top_right_bar_window_history.content.click&vd_source=4298755c4e2edc1fe805c41cc2d7379a

    1.简介:

    正则表达式:匹配指定规则的字符串。

    应用:

    1️⃣编译器中的词法分析器 使用正则表达式去匹配代码中的关键字

    2️⃣网站上的注册表单会用到正则表达式去判断密码的复杂程度

    3️⃣爬虫中用正则表达式中提取我们需要的信息


    2.限定符(一个字符):

    (1)?

    作用:? 在正则表达式中是一个特殊的字符——限定符,代表前面这个字符需要出现 0 次或者 1 次

     

    (2)*

     作用:去匹配 0 个或[多] 个字符(代表没有或者可以出现多次)

    (3)+ 

     作用:匹配 出现[1] 次以上的字符

    (4){···}

     作用:花括号同时允许我们输入一个范围,精确到匹配次数


    3.匹配多个字符的重复

    匹配中间多次出现的ab


    4.OR Operator “或” 运算


    5.Character Classes 字符类

    匹配由 abc 这几个字母构成的单词

    作用:方括号里的内交代表要求匹配的字符只能取自于它们

    此外可以在方括号里指定字符的范围

    例:

    • [a-z]代表所有的小写英文字符
    • [a-zA-Z]代表所有的英文字符
    • [a-zA-Z0-9] 代表所有的英文字符和数字

     若在方括号前加  脱字符 ^,则代表要求匹配除了尖号后面列出的 [以外] 的字符


    6.Mera-characters  元字符

    正则表达式中的大多数元字符都以反斜杠开头 

    例:

    (1)\d  代表数字字符   等同于 [0-9]

     (2)\w  单词字符(英文、数字及下划线)

    (3)\s 空白符(包含Tab和换行符)

     (4)\D 非数字字符

    (5)\W 非单词字符

    (6)\S 非空白字符

     (7). 字符

     作用:代表任意字符,但不代表换行符

    (8)^ 匹配行首  $ 配行尾 

    正则表达式中的脱字符(^)有两种不同的用法:

    1. 在字符类([])内部:当脱字符(^)作为字符类的第一个字符时,表示取反操作,即匹配除了指定字符以外的任意字符。例如,正则表达式[^aeiou]匹配任意非元音字母。
    2. 在模式开头:当脱字符(^)作为正则表达式的开头时,表示匹配字符串的开始位置。例如,正则表达式^abc匹配以"abc"开头的字符串。

    7.实操:

    (1)匹配里面里面的 HTML标签

    错误: 

    原因:.+ 会匹配尽可能多的字符 ——>. 代表任意字符

    正确方式:

    ? 会将正则表达式中默认的贪婪匹配(Greedy Match)切换为懒惰匹配(Lazy Match)

     


    (2)RGB 颜色值匹配 

    匹配文本中出现的所有十六进制 RGB 颜色值

    在表达式末尾加入\b 来代表单词字符的边界 

    (3)IPv4 地址匹配

     IPv4 的地址实际上是由四段数字构成,数字之间由句点隔开

    \d+ 会匹配任何长度大于 1 的数字

    \. 代表 . 这个字面量(. 是元字符 代表任意字符)

    但 IP 地址的每个部分都是 8 位的数字,也就是说它的范围介于 0-255 之间。

    正确方式:

    1. 如果它的前两位是25,那么最后一位只能取 0-5 之间的数字
    2. 如果它的第一位是 2,第二位是 0-4 之间的数,那么最后一位可以取 0-9 之间的任意值(用 \d 代替)
    3. 如果它的第一位是 0 或者 1,那么最后两位可以取 00-99 之间的任意数字(用 \d \ d 代替)

    IP 地址的每一部分也可以由两位数字构成,甚至是1位。——> 可以直接将这里的第一个数字和第三个数字后面都加一个 ?

     

    📜8.总结:

     学习资源:

    正则表达式30分钟入门教程 作者:deerchao
    https://deerchao.cn/tutorials/regex/regex.htm

    Regex tutorial ——A quick cheatsheet by examples(英文)作者:Jonny Fox
    https://medium.com/factory-mind/regex-tutorial-a-simple-cheatsheet-by-examples-649dc1c3f285

    Regular Expressions Tutorial(英文)
    https://www.regular-expressions.info/tutorial.html

     

  • 相关阅读:
    【21天学习挑战赛】冒泡排序与插入排序
    Android Jetpack Compose之UI的重组和自动刷新
    Glide系列(四) — Glide缓存流程分析
    mongodb 实现两个集合的关联并分页查询
    Mybatis-plus
    【TypeScript】初探,行则将至
    Educational Codeforces Round 32 G. Xor-MST 启发式合并字典树、Boruvka求最小生成树 + 最小异或字典树、分治
    .NET周报 【2月第3期 2023-02-18】
    软件测试行业到底有没有前景和出路?2022辞职后涨薪5K+,凭什么?
    python udp 线程接受 demo
  • 原文地址:https://blog.csdn.net/m0_61662775/article/details/133499975
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号