day26 re正则表达式
Python之路,Day14 = Python基础14
1 compile() 2 match() 3 search() 4 findall() 5 6 m.group() # 括号里面剋跟参数,表示打印里面(分组)的第几个元素(索引从1开始) 需要测试下 7 8 9 a = re.compile(r'abc') # 制作匹配规则 10 a.search('abcdefghijk') # a是一个对象 11 12 match # 从第一个开始匹配 13 findall # 找出所有符合规则的 14 search # 从前往后开始寻找 15 16 元字符 17 . # 除换行符的任意字符 18 \ # 转义字符 19 # re 模块是 python 调用的一个 小型语言,如果 规则里面有 \\ 的话, 20 # python 解释器在读取的时候,就会先把它转成 \ 去掉特殊意义, 21 # 但是 re 里面还是需要转化 \ 的特殊意义,所以,需要 \\\\ 来使用 22 # 经过 python 的时候,变成了 \\, 到 re 里面,就变成了 \; 23 [...] # 字符集合 24 25 \d # 数字[0-9] 26 \D # 非数字[^0-9] 27 \s # 空白字符[<空格>\t\r\n\f\n] 28 \S # 非空白字符[^\s] 29 \w # 单字字符[A-Za-z0-9] 30 \W # 非单词字符[^\w] 31 32 数量词字符 33 * # 匹配前0个字符1次或者多次 34 + # 匹配前一个字符1次或者多次 35 ? # 匹配前一个字符0次或者1次 36 {m} # 匹配前一个字符m次 37 {m,n} # 匹配前一个字符m至n次 38 数量词?# 变成非贪婪模式(默认为贪婪模式,尽可能的匹配多的次数) 39 40 ^ 41 '^[abc]' # 以a或b或c开头的 42 '[^abc]' # 非a、b、c 43 44 45 边界字符 46 ^ # 匹配字符串开头,多行匹配每一行开头 47 '^[abc]' # 以a或b或c开头的 48 '[^abc]' # 非a、b、c 49 50 $ # 匹配字符串末尾,多行匹配每一行末尾 51 \A # 仅匹配字符串开头,注意转义字符 52 \Z # 仅匹配字符串末尾,注意转义字符 53 \b # 匹配\w和\W之间,注意转义字符 54 55 56 逻辑、分组 57 | # 或 58 ret = findall("www\.(?:\w+)\.(?:com|cn)") 59 # findall 默认只显示 分组的信息(括号里面的), 加了 ?: 那么就取消优先级啊(打印所有) 60 # | 两个要用 括号 括起来 61 62 (...) # 匿名分组 63 a = re.compile('(a)b(c)') 64 a.match('abcdefg') 65 a.groups() # 分组匹配。会打印出一个元组,符合规则a的为第一个元素,符合规则c的为第二个元素,如果后面的规则也有括号的话,依次变为元素 66 67 68 (?P<name>...) # 除了分组外还替该组制定一个 name 的别名 69 p = re.compile('(?P<name>a)b(c)') 70 a = p.match('abcdef') 71 a.group('name') # 可以把这个对应的元素取出来 72 a.groups() 73 a.groupdict() 74 75 76 \<number> # 引入编号为<number>的分组匹配到的字符串 77 p = re.compile(r'(?<name>a)b(c)\1') # 注意 1 前面的 \ ,不加 r ,会被当成转义字符,可以写两个 \ 78 # \1 像当与在这个位置引用了前面第一个的那个规则(分组里面的第一个),同样,不会被写入到分组中 79 p.match('abcdef') 80 a.groups() 81 a.groupdict() 82 83 84 (?P=name) # 引用别名为<name>的分组匹配到的字符串 85 p = re.compile('(?<name>a)b(c)(?P=name)') 86 # (?P=name) 相当于在这个位置引用了前面那个 名字叫 name 的这个规则,虽然这里有括号,但是它只会匹配到,不会放入分组中 87 p.match('abcdef') 88 a.groups() 89 a.groupdict() 90 91 92 93 特殊构造 94 (?:...) # (...) 不分组版本,虽然在括号里面,但是不进行分组 95 (?#...) # #号后面的内容将作为注释 96 (?=...) # 后面的限定词满足 ... 条件 97 re.compile(r'a(?=\d)') # 匹配前面是a,后面是数字的内容,得到的结果显示出a,不显示后面的数字 98 (?!...) # 后面的限定词不满足 ... 条件 99 (?<=...) # 前面的限定词满足 ... 条件 100 (?<!...) # 前面的限定词不满足 ... 条件 101 (?(id/name) yes |no) # 102 # re.compile(r'(\d)?abc(?(1)\d|abc)') 103 # 匹配规则为 (\d)?abc ,有分组; 104 # (?(1)\d|abc) 前面 分组里面位置为 1 的规则,可以是数字,也可以是 abcdef 105 106 107 正则表达式开关 108 忽略大小写: 109 可以写成:re.compile(r'(?i)abc') 110 开关模式:re.compile(r'abc', re.I) # 推荐 111 112 113 sub 114 p = re.compile(r'(\w) (\w)') 115 s = 'hi you, good boy' 116 print(p.sub(r'\2 \1', s) 117 >>> you hi, boy good
转载于:https://www.cnblogs.com/alwaysInMe/p/7082023.html
day26 re正则表达式相关推荐
- 传智 刘意 2015年Java基础视频-深入浅出精华版 笔记 day24~day26(2016年4月26日13:11:30)
day24 1.多线程(JDK5之后的Lock锁的概述和使用) Lock: void lock(): 获取锁. void unlock():释放锁. ...
- 通过正则表达式校验手机号码,拿走即用!
校验手机号码 2021/01/06更新,电信新增了191号段 1. 单纯校验长度 2.正则表达式校验数字 3.正则表达式校验是否是大陆号码 4.正则表达式校验是否是香港号码 //校验长度private ...
- Linux shell 学习笔记(15)— shell 正则表达式
1. 定义 BRE 模式 1.1 纯文本 第一条原则就是:正则表达式模式都区分大小写.这意味着它们只会匹配大小写也相符的模式. $ echo "This is a test" | ...
- re2正则表达式匹配引擎的c接口版本cre2的中文使用手册
前言 re2 官方地址: https://github.com/google/re2 cre2 官方地址: https://github.com/marcomaggi/cre2 1 基本类型定义 不透 ...
- 正则表达式(括号)、[中括号]、{大括号}的区别小结
正则表达式(括号).[中括号].{大括号}的区别小结 </h1><div class="clear"></div><div class=& ...
- Python中正则表达式用法 重点格式以这个为准_首看_各种问题
20210811 https://www.jb51.net/article/101258.htm 一.惰性模式的概念: 此模式和贪婪模式恰好相反,它尽可能少的匹配字符以满足正则表达式即可,例如: va ...
- 正则语法完全正则表达式手册_语法格式重点
20211202 https://blog.csdn.net/lc11535/article/details/103266263 该表达式打开re.U(re.UNICODE)标志. python –& ...
- 正则表达式 - 语法
正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串.将匹配的子串替换或者从某个串中取出符合某个条件的子串等. 例如: r ...
- 正则表达式中的\.表示什么意思
\ 这是引用符,用来将这里列出的这些元字符当作普通的字符来进行匹配.例如正则表达式\$被用来匹配美元符号,而不是行尾,类似的,正则表达式\.用来匹配点字符,而不是任何字符的通配符.
最新文章
- poj1422(最小路径覆盖问题)
- 区块链是一种用一种不可变的形式存储数字信息
- 比特币耶稣Roger Ver赠送中国著名经济学家巴曙松1枚比特币现金BCH
- 6.3 Spring Boot集成mongodb开发
- FPGA之道(60)时空变换之空域优化
- 应用视觉设计_Day01
- 笔记-信息系统安全管理-信息系统安全技术体系
- 文档生成器 Xcode与Appledoc
- c语言中switch的用法是什么?
- mysql 字符,索引
- python字典的键设置条件格式_openpyxl条件格式设置数字格式
- java代码实现分页_Java分页实现(示例代码)
- ANSYS 有限元分析 坐标系/工作平面
- 史上最全股票指标图文详解
- 创业过程中技术真的那么重要吗
- 自定义修改elementUI组件样式(贯穿样式)
- Linux——vi/vim文本编辑器、用户管理、关机重启的相关命令
- ZigBee 3.0实战教程-Silicon Labs EFR32+EmberZnet:学习教程目录
- 【优化求解】基于遗传算法优化PARSEC 方法的翼型形状附matlab代码
- 人脸识别SVM算法实现--参考麦子学院彭亮机器学习基础5.2