《Python核心编程》读书笔记—正则表达式
来源:互联网 发布:三维地理信息系统软件 编辑:程序博客网 时间:2024/05/19 04:03
正则表达式(RE):由字符和特殊符号组成的字符串
常见的符号和字符
记号 说明 样例literal 匹配字符串的值 foo rel1 **|** rel2 匹配正则表达式rel1或rel2 foo|bar . 匹配任何字符(换行符除外) b.b (1):^ 匹配字符串的开始 ^Dear$ 匹配字符串的结尾 /bin/*sh$(2):* 匹配前面出现的正则表达式零次或多次 [A-Za-z0-9]+ 匹配前面出现的正则表达式一次或多次 [a-z]+\.com? 匹配前面出现的正则表达式零次或一次 goo?{N} 匹配前面出现的正则表达式N次 [0-9]{3}{M,N} 匹配重复出现M次到N次的正则表达式 [0-9]{3,5}[...] 匹配字符组里出现的任意一个字符 [aeiou][..x-y..] 匹配从字符x到y中的任意一个字符 [0-9],[A-Za-z][^...] 不匹配此字符集中出现的任何一个字符 [^aeiou],[^A-Za-z]\c 逐一匹配特殊字符c(即取消它的特殊含义,按字面匹配) \.,\..,\*
(1):^, $, \b, \B
\b:匹配单词边界,不论这个单词前有字符(在一字符串中间)/ 没有字符(在一行起始处)
\B:仅匹配出现在一单词中间的模式
(2):“贪心”
正则表达式在匹配模式时,会尽量“吸收”更多的字符 -> “贪心”
–> ?
? 用在表示重复的元字符后面:表示要求搜索引擎匹配的字符串越短越好,留下尽可能多的字符给后面的模式(如果存在)
(3)特殊字符:
\d 匹配任何数字,和[0-9] 一样。\D 是\d的反义:任何非数字
\w 匹配任何数字字母字符,和[A-Za-z0-9]相同。\W 是\w 的反义
\s 匹配任何空白符,和 [\n\t\r\v\f] 相同。\S 是\s 的反义
(4)
(…) 匹配封闭括号中正则表达式,并保存为自组 (0-9{3})?, f(oo|u)bar
re模块:核心函数和方法
compile(pattern, flags = 0)
在参数中我们传入了原生字符串对象,通过compile方法编译生成一个pattern对象,然后我们利用这个对象来进行进一步的匹配。flags是可选标识符。
group(), groups():
在处理正则表达式时,除regex对象外,还有一:类型-匹配对象 -> 在match() / search() 被成功调用后返回的结果
group() 返回所有匹配对象/根据要求(括号中填入数字)返回某个特定自组groups() 返回一包含唯一/所有自组的元组若无:group()返回所有匹配对象,groups()返回一空元组
match(pattern, string, flags = 0)
常使用正则表达式模式pattern匹配字符串string(从开头开始),若匹配成功:返回一匹配对象;否则返回None
>>>m = re.match('(\w\w\w)-(\d\d\d)', 'abc-123')>>>m.group()'abc-123'>>>m.group(1) #若(a(b)) 则group(1)为先出现的括号(即(ab))'abc'>>>m.group(2)'123'>>>m.groups()('abc','123')>>>patt = '^(\w){3}' # 不等于 (\w)(\w)(\w),group(3)为第三个(\w)#而此group(1)一直被替换
search(pattern, string, flags = 0)
搜索,第一次出现, 成功返回一匹配对象,否则返回None
findall(pattern, string [,flags])
搜索,所有出现,成功返回一匹配对象的列表,否则返回一空列表
finditer(pattern, string [,flags])
与findall() 相同,但是finditer() 返回一迭代器,对每个匹配,返回一匹配对象
split(pattern, string, max = 0)
根据正则表达式pattern中的分隔符,将字符string分割为一列表,返回该列表。最多分割max次(默认全部分割)
sub(pattern, repl, string, max = 0)
根据正则表达式pattern,搜索string,将匹配该pattern的替换为repl
subn() 与sub()同,返回一元祖 (.. , ..):替换后的字符串和表示替换次数的数字
- 《Python核心编程》读书笔记—正则表达式
- Python核心编程---读书笔记:第15章 正则表达式
- python核心编程第3版第1章 正则表达式【读书笔记】
- python核心编程学习笔记——正则表达式
- python 核心编程 正则表达式部分答案
- python核心编程-正则表达式之match
- python核心编程-正则表达式-产生测试数据
- Python核心编程(第十五章)--正则表达式
- <<python 核心编程>>第一章 正则表达式
- Python核心编程 第一章--正则表达式
- Python核心编程读书笔记
- Python核心编程读书笔记
- Python核心编程 读书笔记
- python核心编程读书笔记
- Python核心编程第15章正则表达式练习答案
- 《Python核心编程》第15章 正则表达式 练习
- python核心编程-正则表达式之-匹配多个字符串
- python核心编程-正则表达式之-任意单个字符
- RecyclerView在ScrollView中使用wrap_content
- CDN 技术研究——Cache集群通信
- XStream解析xml,并分享
- Java中的抽象类和接口
- 叠加图片切片工具:可以处理大图了
- 《Python核心编程》读书笔记—正则表达式
- jQuery异步框架探究2:jQuery.Deferred方法
- Android 添加自定义的.ttf字库文件到系统
- js中设置显示和隐藏
- 导致页面顶部空白一行解决方法
- Raspberry Pi For Windows
- 我在达内学安卓-基于ArrayAdapter创建单一对象列表方式创建联系人列表!
- Android学习笔记
- 一则C语言题