设为首页 加入收藏

TOP

正则表达式(一)
2017-09-30 16:53:15 】 浏览:7195
Tags:正则 表达式

介绍
    就其本质而言,正则表达式(或 RE)是一种小型的、高度专业化的编程语言,
 (在Python中)它内嵌在Python中,并通过 re 模块实现。
    你可以为想要匹配的相应字符串集指定规则;该字符串集可能包含英文语句、
    e-mail地址、TeX命令或任何你想搞定的东西。然后你可以问诸如“这个字符串
    匹配该模式吗?”或“在这个字符串中是否有部分匹配该模式呢?”。你也可以使
    用 RE 以各种方式来修改或分割字符串。
字符匹配(普通字符,元字符):
普通字符:大多数字符和字母都会和自身匹配

 >>> re.findall('alex','yuanaleSxalexwupeiqi')
           ['alex']
          

----------------           
s='I get A,  I get B ,I get C'
re.sub("get","got",s)
'I got A,  I got B ,I got

subn
-------------------
s='I got A,  I got B  ,I get C'
re.split("\s*,\s*", s )
-------------------
 re.split("[bc]",'abcdef')########?
--------------------------------------------------------------
        
元字符:.   ^   $   *   +   ?   { }   [ ]   \   |   ( )
\:反斜杠后边跟元字符去除特殊功能,反斜杠后边跟普通字符实现特殊功能。
\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_]
??? re.findall('\d.\d','5.4')
[]:元字符[]表示字符类,在一个字符类中,只有字符^、-、]和\有特殊含义。
字符\仍然表示转义,字符-可以定义字符范围,字符^放在前面,表示非.
函数:   

1 search(pattern, string[, flags])        在字符串中寻找模式
2 match(pattern, string[, flags])         在字符串的开始处匹配模式

Match对象是一次匹配的结果,包含了很多关于此次匹配的信息,可以使用Match提供的可读属性或方法来获取这些信息。

属性:
string: 匹配时使用的文本。
re: 匹配时使用的Pattern对象。
pos: 文本中正则表达式开始搜索的索引。值与Pattern.match()和Pattern.seach()方法的同名参数相同。
endpos: 文本中正则表达式结束搜索的索引。值与Pattern.match()和Pattern.seach()方法的同名参数相同。
lastindex: 最后一个被捕获的分组在文本中的索引。如果没有被捕获的分组,将为None。
lastgroup: 最后一个被捕获的分组的别名。如果这个分组没有别名或者没有被捕获的分组,将为None。


方法:
group([group1, …]):
获得一个或多个分组截获的字符串;指定多个参数时将以元组形式返回。group1可以使用编号也可以使用别名;编号0代表整个匹配的子串;不填写参数时,返回group(0);没有截获字符串的组返回None;截获了多次的组返回最后一次截获的子串。
groups([default]):
以元组形式返回全部分组截获的字符串。相当于调用group(1,2,…last)。default表示没有截获字符串的组以这个值替代,默认为None。
groupdict([default]):
返回以有别名的组的别名为键、以该组截获的子串为值的字典,没有别名的组不包含在内。default含义同上。
start([group]):
返回指定的组截获的子串在string中的起始索引(子串第一个字符的索引)。group默认值为0。
end([group]):
返回指定的组截获的子串在string中的结束索引(子串最后一个字符的索引+1)。group默认值为0。
span([group]):
返回(start(group), end(group))
3 split( rule , target [,maxsplit] )      根据模式的匹配项来分割字符串
4 findall(pattern, string)                列出字符串中模式的所有匹配项
5 sub ( rule , replace , target [,count] )
6 finditer(pattern, string)                返回迭代器
7 compile(pattern[, flags])               根据包含正则表达式的字符串创建模式对象

>>> import re
>>> re.match("c", "abcdef")
>>> re.search("c","abcdef")
<_sre.SRE_Match object at 0x00A9A988>

>>> re.match(
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Windows下Python工具pip的安装 下一篇Python Opearte MS-SQL Use Pymss..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目