Python核心编程技术之正则表达式(努力更新中)
2017-07-18 20:07
405 查看
Python编程核心技术之正则表达式(regex)
一.正则表达式简介
正则表达式(regex)为高级的文本模式匹配、抽取、与/或文本形式的搜索和替换功能提供了基础。简单的来说正则表达式是一些由字符和特殊符号组成的字符串,他们描述了模式的重复或者表述多个字符,于是正则表达式能够按照某种模式匹配一系列有相似特征的字符串。即能匹配多个字符串。在Python中通过标准库中的re模块来支持正则表达式。
注释:在Python中有两种方法完成模式匹配:搜索和匹配。搜索:通过search()函数在字符串的任意部分中搜索匹配模式。匹配:通过调用math()函数判断一个字符串能否从起始处全部或者部分的匹配某个模式。
二.常见正则表达式符号和特殊字符
符号 说明 正则表达式模式 匹配的字符串 literal 匹配字符串的值 foo foo | 匹配多个正则表达式模式 bat|bet|bit bat,bet,bit . 匹配任意一个字符(换行符\n除外) f.o 在f和o之间具有任何一个字符的字符串 ^ 匹配字符串的开始 ^From 任何以From开始的字符串 $ 匹配字符串的结尾 end$ 任何以end结束的字符串 [...] 匹配[]中的任意一个字符 b[aeiu]t bat,bet,bit,but [x-y] 匹配从字符x到y中的任意一个字符 [0-9][a-zA-Z] 0到9之间的任何一个数字和任何一个字母组成的字符串 [^...] 不匹配此字符集中出现的任何一个字符 [^aeiou] 一个非元音字符 * 匹配前面的正则表达式零次或多次 t[dn]*o t和o之间有任意多个d或n组成的字符串, 例如to,tdo,tno,tdno,tddo,tndno等 + 匹配前面的正则表达式一次或多次 t[dn]+o t和o之间有至少一个d或n组成的字符串, 例如tdo,tno,tdno,tddo,tndno等 ? 匹配前面的正则表达式零次或一次 [dn]ot? do,no,dot,not {N} 匹配前面的正则表达式N次 [0-9]{16} 任何一个16位数字 {M,N} 匹配前面的正则表达式M次到N次 [0-9]{15,16} 任何一个15位或16位数字 (*|+|?|{})? 上面4个重复匹配符号(*,+,?,{})的非贪心版本,即尽可能少的匹配消耗字符,留下尽可能多的字符给后面的模式 () 匹配()中的正则表达式,并保存为子组 f(oo|u)bar
三.常用的用法简介
1.使用择一匹配符号匹配多个正则表达式模式。表示择一匹配的管道符号(|),竖线。表示一个从多个模式中选择其一的操作模式。用于分割不同的正则表达式。择一匹配也称作并或者逻辑或。
2.匹配任意单个字符。
点号或者句号能匹配出了换行符以外的任何字符(在Python中有一个编译标记【S或者DOTALL】可以推翻这个限制)。
3.从字符串起始或者结尾或单词边界匹配。
如果要匹配字符串的开始位置,就必须要用脱字符(^)或者特殊字符\A。如果要匹配字符串的末尾位置,就要用美元符($)或者\Z。
4.特殊字符\b和\B可以用来匹配字符边界。
\b用于匹配一个字符的边界,任何一个以\b之后字符串开始的字符串。\B用来匹配任何包含而不以\B后字符串作为其实的字符串。
5.创建字符集。
某些时候想要匹配某些特定的字符。方括号可以匹配一对方括号之内的任何字符。
6.限定范围和否定。
字符集还支持匹配指定的字符范围。方括号中两个符号中间用连字符(—)连接,用于指定一个范围。另外,如果脱字符(^)紧随左方括号后面,这个符号就表示不匹配给定字符集中的任何一个字符。
7.使用闭包操作符实现存在性和频数匹配。
星号或者星号操作符(*)将匹配其左边的正则表达式出现零个或者多次的情况。 加号操作符(+)将匹配一次或者多次出现的正则表达式。 问号操作符(?)将匹配零次或者一次出现的正则表达式。 大括号操作符({})里面是一对逗号分隔值。将会最精确的匹配前面正则表达式N次后者一定范围的次数。
8.表示字符集的特殊字符。
可以用d表示任何十进制数。另一个特殊字符(\w)表示全部的字母或者数字的字符集。(\s)表示空格符这些特殊字符的大写则表示不匹配相应的字符集。
9.使用圆括号指定分组。
当时用正则表达式时,一对圆括号可以实现以下任意一个功能:对正则表达式进行分组或匹配子组。
相关文章推荐
- python核心编程-正则表达式之-边界匹配
- python核心编程-正则表达式之-匹配多个字符串
- Python核心编程习题之——正则表达式
- python核心编程-正则表达式之-任意单个字符
- python核心编程-正则表达式之-重复、特殊字符、子组
- [PYTHON]核心编程笔记(15.Python正则表达式)
- python核心编程-正则表达式之-创建字符集合
- python 核心编程 正则表达式部分答案
- python核心编程-正则表达式-产生测试数据
- python核心编程作业--正则表达式和图形界面--电影搜索器(电影天堂)
- python编程--正则表达式
- PHP核心技术与最佳实践之正则表达式匹配规则
- 学习python编程之正则表达式(一)
- PHP核心技术与最佳实践之正则表达式反向引用
- java核心技术正则表达式
- Python编程 Python中有关正则表达式 setdefaultencoding
- [python][正则表达式] re模块核心函数和方法
- python 正则表达式 (持续更新)
- Python 网络爬虫 009 (编程) 通过正则表达式来获取一个网页中的所有的URL链接,并下载这些URL链接的源代码
- 用正则表达式看.NET编程--正则核心对象详解(二)