python中常用的正则表达式
来源:互联网 发布:淘宝订购服务怎么取消 编辑:程序博客网 时间:2024/05/02 02:01
元字符
1.匹配元字符:
. 它匹配除了换行字符外的任何字符,在 alternate 模式(re.dotaLL)下它甚至可以匹配换行
^ 匹配行首。除非设置 MULTILINE 标志,它只是匹配字符串的开始。
$ 匹配行尾,行尾被定义为要么是字符串尾,要么是一个换行字符后面的任何位置。
[] 它们常用来指定一个字符类别,所谓字符类别就是你想匹配的一个字符集
\ 反斜杠后面可以加不同的字符以表示不同特殊意义。它也可以用于取消所有的元字符,这样你就可以在模式中匹配它们了
| 可选项,或者 "or" 操作符。
() 一般情况下表示一个记忆组 (remembered group)。你可以利用 re.search 函数返回对象的 groups() 函数获取它的值
2.重复元字符:
* 重复0或N次
+ 重复1或N次
? 重复0或1次
{m,n} 该限定符的意思是至少有 m 个重复,至多到 n 个重复
3.用 "\" 开始的预定义字符集
\d 匹配任何十进制数;它相当于类 [0-9]。
\D 匹配任何非数字字符;它相当于类 [^0-9]。
\s 匹配任何空白字符;它相当于类 [ \t\n\r\f\v]。
\S 匹配任何非空白字符;它相当于类 [^\t\n\r\f\v]。
\w 匹配任何字母数字字符;它相当于类 [a-zA-Z0-9_]。
\W 匹配任何非字母数字字符;它相当于类 [^a-zA-Z0-9_]。
\A 只匹配字符串首。当不在 MULTILINE 模式,\A 和 ^ 实际上是一样的。然而,在 MULTILINE 模式里它们是不同的;\A 只是匹配字符串首,而 ^ 还可以匹配在换行符之后字符串的任何位置。
\Z 只匹配字符串尾。
\b 单词边界。这是个零宽界定符(zero-width assertions)只用以匹配单词的词首和词尾。单词被定义为一个字母数字序列,因此词尾就是用空白符或非字母数字符来标示的。
\B 另一个零宽界定符(zero-width assertions),它正好同 \b 相反,只在当前位置不在单词边界时匹配。
注:[akm$]将匹配字符"a", "k", "m", 或 "$" 中的任意一个;"$"通常用作元字符,但在字符类别里,其特性被除去,恢复成普通字符。
RegexObject(re)对象常用方法
matchObject=re.match(pattern,string,flag='0') :决定 RE 是否在字符串刚开始的位置匹配
matchObject=re.search(pattern,string,flag='0'):扫描字符串,找到这个 RE 匹配的位置
tuple=re.findall(pattern,string,flag='0') : 找到 RE 匹配的所有子串,并把它们作为一个列表返回
matchObjectList=re.finditer(pattern,string):找到 RE 匹配的所有子串,并把它们作为一个迭代器返回
MatchObject对象的常用方法
findstring = matchObject.group() :返回被 RE 匹配的字符串
i = matchObject.start() :返回匹配开始的位置
i = matchObject.end() :返回匹配结束的位置
start,end = matchObject.span() :返回一个元组包含匹配 (开始,结束) 的位置
编译标志
DOTALL, S :使 . 匹配包括换行在内的所有字符
IGNORECASE, I: 使匹配对大小写不敏感
LOCALE, L :做本地化识别(locale-aware)匹配
MULTILINE, M: 多行匹配,影响 ^ 和 $
VERBOSE, X :能够使用 REs 的 verbose 状态,使之被组织得更清晰易懂
使用心得
1.先编译后使用:re.compile('pattern')
2.切勿重复编译:放入全局空间或放入cell空间并实例出一个闭包实例
- python中常用的正则表达式
- python中常用正则表达式
- Python中常用的正则表达式处理函数
- python常用正则表达式
- Python正则表达式的常用匹配用法
- python常用的正则表达式操作
- Python最常用的正则表达式
- 正则表达式中常用表达式
- javascript 中一些常用的正则表达式
- .NET2.0中常用的正则表达式
- ASP.NET中常用的正则表达式
- c#中常用的正则表达式
- JavaScript中常用的几个正则表达式
- C#中常用的正则表达式
- C#中常用的正则表达式
- shell中常用的正则表达式2
- c#中常用的正则表达式
- 项目中常用的十个正则表达式
- Java编程之字符集问题研究
- microsoft incremental linker
- 定制SRAM的Avalon接口IP
- Windows Phone开发人员必看资料
- UISeachBar 常用方法
- python中常用的正则表达式
- timeit 模块
- Emacs中JDEE的配置
- 马斯洛需求层次理论与消费者需求
- usaco 2003 月赛 Best Cow Fences & poj2018 题解
- Java实现存储过程的sql处理
- 关于最简单的控件使用注意点
- 使用MyEclipse自动生成WebService服务端代码
- 迅雷导致sql数据库无法启动