写在前面:
此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出。欢迎各位前来交流。(部分材料来源网络,若有侵权,立即删除)
传送门:

day01基础知识
day02知识分类
day03运算符
day04数字与字符串
day05列表
day06元组与字典
day07条件与循环
day08函数概念
day09数据结构
day10模块介绍
day11文件操作
day12编程学习
day13编程学习
day14编程学习
day15编程学习
day16编程学习
day17编程学习
day18编程学习

Python学习:day20

  • Python正则表达式
    • 正则表达式
    • 正则表达式-语法
      • 普通字符
      • 非打印字符
      • 限定符

Python正则表达式

正则表达式

  • 正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")。
  • 正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。
  • 简单的示例:

  • ^ 为匹配输入字符串的开始位置。
  • [0-9]+匹配多个数字, [0-9] 匹配单个数字,+ 匹配一个或者多个。
  • abc匹配字母abc并以abc结尾,匹配字母 abc 并以 abc 结尾,匹配字母abc并以abc结尾, 为匹配输入字符串的结束位置。

也可以根据字符串长度来进行匹配:

  • 以上的正则表达式可以匹配 runoob、runoob1、run-oob、run_oob, 但不匹配 ru,因为它包含的字母太短了,小于 3 个无法匹配。也不匹配 runoob$, 因为它包含特殊字符.
var str = "123abc";
var patt1 = /^[0-9]+abc$/;
document.write(str.match(patt1));

输出结果:

  • 正则表达式用于典型的搜索和替换操作要求您提供与预期的搜索结果匹配的确切文本。
  • 基本上用于静态文本执行简单搜索和替换任务。
  • 搜索动态文本十分不便。
  • 正则表达式可以用于:
    测试字符串内的模式;
    替换文本;
    基于模式匹配从字符串中提取子字符串;

正则表达式-语法

  • 正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。

     runoo+b,可以匹配 runoob、runooob、runoooooob 等,+ 号代表前面的字符必须至少出现一次(1次或多次)。runoo*b,可以匹配 runob、runoob、runoooooob 等,* 号代表前面的字符可以不出现,也可以出现一次或者多次(0次、或1次、或多次)。colou?r 可以匹配 color 或者 colour,? 问号代表前面的字符最多只可以出现一次(0次、或1次)。
    
  • 构造正则表达式的方法和创建数学表达式的方法一样。也就是用多种元字符与运算符可以将小的表达式结合在一起来创建更大的表达式。正则表达式的组件可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合。

  • 正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为"元字符")组成的文字模式。模式描述在搜索文本时要匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。

普通字符

  • 普通字符包括没有显式指定为元字符的所有可打印和不可打印字符。这包括所有大写和小写字母、所有数字、所有标点符号和一些其他符号。

非打印字符

  • 非打印字符也可以是正则表达式的组成部分。
字符 描述
\cx 匹配由x指明的控制字符。例如, \cM 匹配一个 Control-M 或回车符。x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 ‘c’ 字符。
\f 匹配一个换页符。等价于 \x0c 和 \cL。
\n 匹配一个换行符。等价于 \x0a 和 \cJ。
\r 匹配一个回车符。等价于 \x0d 和 \cM。
\s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。注意 Unicode 正则表达式会匹配全角空格符。
\S 匹配任何非空白字符。等价于 [ ^ \f\n\r\t\v]。
\t 匹配一个制表符。等价于 \x09 和 \cI。
\v 匹配一个垂直制表符。等价于 \x0b 和 \cK。

限定符

  • 限定符用来指定正则表达式的一个给定组件必须要出现多少次才能满足匹配。有 * 或 + 或 ? 或 {n} 或 {n,} 或 {n,m} 共6种。
字符 描述
* 匹配前面的子表达式零次或多次。例如,zo* 能匹配 “z” 以及 “zoo”。* 等价于{0,}。
+ 匹配前面的子表达式一次或多次。例如,‘zo+’ 能匹配 “zo” 以及 “zoo”,但不能匹配 “z”。+ 等价于 {1,}。
? 匹配前面的子表达式零次或一次。例如,“do(es)?” 可以匹配 “do” 、 “does” 中的 “does” 、 “doxy” 中的 “do” 。? 等价于 {0,1}。
{n} n 是一个非负整数。匹配确定的 n 次。例如,‘o{2}’ 不能匹配 “Bob” 中的 ‘o’,但是能匹配 “food” 中的两个 o。
{n,} n 是一个非负整数。至少匹配n 次。例如,‘o{2,}’ 不能匹配 “Bob” 中的 ‘o’,但能匹配 “foooood” 中的所有 o。‘o{1,}’ 等价于 ‘o+’。‘o{0,}’ 则等价于 ‘o*’。
{n,m} m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如,“o{1,3}” 将匹配 “fooooood” 中的前三个 o。‘o{0,1}’ 等价于 ‘o?’。请注意在逗号和两个数之间不能有空格。
  • 以下正则表达式匹配一个正整数,[1-9]设置第一个数字不是 0,[0-9]* 表示任意多个数字:

  • 请注意,限定符出现在范围表达式之后。因此,它应用于整个范围表达式,在本例中,只指定从 0 到 9 的数字(包括 0 和 9)。
  • 这里不使用 + 限定符,因为在第二个位置或后面的位置不一定需要有一个数字。也不使用 ? 字符,因为使用 ? 会将整数限制到只有两位数。
  • 如果你想设置 0~99 的两位数,可以使用下面的表达式来至少指定一位但至多两位数字。
/[0-9]{1,2}/
  • 上面的表达式的缺点是,只能匹配两位数字,而且可以匹配 0、00、01、10 99 的章节编号仍只匹配开头两位数字。改进下,匹配 1~99 的正整数表达式如下:
/[1-9][0-9]?/

或者:

/[1-9][0-9]{0,1}/

end
明天继续,加油。

Python学习:day20正则表达式相关推荐

  1. python 学习总结----正则表达式

    python 学习总结----正则表达式 正则表达式应用场景- 特定规律字符串的查找,切割,替换 - 邮箱格式:URl,IP地址等的校验 - 爬虫项目中,特定内容的提取使用原则- 只要使用字符串等函数 ...

  2. python学习笔记 正则表达式 详解2

    python学习笔记 正则表达式 详解 行定位符 行定位符就是用来描述子串的边界."^"表示行的开始:"$"表示行的结尾 ^tm:匹配以子串tm的开始位置是行头 ...

  3. 菜菜的Python学习日记 | 正则表达式你必须了解的知识点

    系列索引:菜菜的Python学习日记 | Python从入门到入土详解 文章目录 常用规则 Python对正则表达式的支持 常用规则 符号 解释 示例 说明 . 匹配任意字符 b.t 可以匹配bat ...

  4. 【python学习】正则表达式入门

    python正则表达式入门学习 前言 今天进入python正则表达式的入门学习 学习正则表达式的初衷还是为了awd比赛做准备 (好吧,其实学习python都是为了ctf啊) 学习的目的就是为了可以提取 ...

  5. Python学习16 正则表达式2 re模块

    re 模块 re 模块: Python的 re 模块实现了正则表达式处理的功能. 导入re模块后,使用findall.search函数可以进行匹配 查找:match和search 多个匹配上的,也只会 ...

  6. Python学习 Day30 正则表达式(二)

    正则表达式(二) (一)预定义类 预定义类:这个术语,这些特定符号只能在正则表达式中使用 预定义类 作用 \d [0-9] \d可以匹配任意[一个]数字字符 \D 非[0-9] \D匹配任意[一个]不 ...

  7. python学习之 ---正则表达式规则与正则表达式在python的应用

    正则表达式 概述 正则表达式30分钟快速入门 正则表达式是文本处理极为重要的技术,用它可以对字符串按照某种规则进行检索,替换 分类 BRE 基本正则表达式,grep.sed.vi等软件支持.vim有扩 ...

  8. python学习之正则表达式练习:编写一个计算器

    #!/usr/bin/env python import re def deal_negative_issue(calc_list):     new_calc_list=[]    #定义一个新的空 ...

  9. Python学习15 正则表达式1

    网址 正则表达式测试网址:https://regex101.com/ 概述 正则表达式: 正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母) ...

  10. Python学习 Day29 正则表达式(一)

    正则表达式(一) (一)正则的基本使用方法 正则表达式是用于匹配字符串的一种模式.方法 正则表达式:regular expression,简称RegExp 正则表达式定义最常用的方法是字面量,写法// ...

最新文章

  1. PHP中的字符串 — 表示方法
  2. ESP8266编译脚本之二
  3. 对“反射”的深入认识,你会发觉跟“解剖”一样
  4. 分享一批国内常用的tracker地址
  5. 教你如何制作饼干icon教程
  6. Swift中文教程(八) 枚举类型
  7. Perl 日志分析W3A_system
  8. 抖音回应“天价烤虾”事件:已经在调查违规广告主
  9. python读取pdf表格数据代码_Python新工具:用三行代码提取PDF表格数据
  10. Android -- ViewGroup源码分析+自定义
  11. 关于nginx file not found
  12. SIM800L模块发送短信
  13. 主机安全扫描入门-用Java封装Nmap
  14. 联想服务器改xp系统,联想win7改xp蓝屏怎么解决
  15. 数字IC-1.2 用CMOS管构建逻辑门电路 及 逻辑化简方法(与、或、非、与非、或非)
  16. 郑树生与李一男的对望
  17. 第一次见岳父岳母的攻略「转载」
  18. 李航·《统计学习方法》学习笔记
  19. Mac制作U盘安装盘和安装系统
  20. Flutter Drawer详解

热门文章

  1. linux中一些特殊的权限(setuid/setgid/sticky)
  2. Pycharm远程调试:变量内容加载过慢或不能加载
  3. 数据结构可视化工具(在线,动态生成,用过都说好!)
  4. js实现点击“验证码”开始倒计时
  5. Tarjan缩点简析
  6. 9.设置jdk版本相同有哪些需要设置的(解决jdk不同的一般方法)
  7. struts2之值栈
  8. 反射setAccessible()方法
  9. linux驱动初探之字符驱动
  10. 1415-2 计科计高 软件工程博客Github地址汇总-修正版