您的位置:首页 > 编程语言 > Python开发

python的re模块及正则表达式的使用

2015-03-17 15:30 716 查看
        不知是因为自己太低端还是其他的什么原因,别人都说的正则表达式非常强大,可是我的意识中正则表达式有用,但总是觉得没有传说中的那么厉害。也有可能是自己没有真正的理解它吧。在python中再次偶遇,那就再来好好学习一番。

        首先是通配符,点号(.)可以匹配除了换行符之外的任意一个字符,'.ython’可以匹配’python‘也可以匹配’jypthon‘。注意点号是匹配一个字符,不能使空更不能是多个。假如在需要匹配的字符串中包含了点号,这时候就需要转义符来实现,在re中使用(python\\.org)来匹配(python.org).

       匹配字符集,使用[ ]表示,[pj]ython就表示匹配python或者jython,而非其他内容。使用[a-z]表示匹配任意一个小写字母;[a-zA-Z0-9]则表示匹配任意字母或数字。

       反转字符集,可以在开头使用^字符[^abc]表示匹配除了a b c之外的任意字符。当然,如果匹配的内容中包括了^ [ ]等符号时也需要使用反转字符。

      选择符和子模式,在字符串的每个字符都不一样的时候字符集是很好用的,但是如果想匹配字符创python和per呢,这个时候可以使用选择符“|”,python|per就表示匹配python或者per。有时候不需要对整个字符使用选择符,p(ython|er)表示的意义和上面一样,而小括号中的部分就被称为子模式。

      可选项和重复子模式,(python)?为可选项,即该子模式存在或者不存在。(python)*表示模式重复0次或者多次,(python)+表示子模式重复一次或者多次,(python){m,n}表示重复m~n次。

       匹配开头和结尾,匹配开头的时候使用^,如^http表示匹配以http开头的字符串,匹配结尾使用$符号,com$表示匹配以com为结尾的字符串。

some_text="gao xiang... huier"
import re
if re.search("xiang",some_text): #find the world in the text
print "found it"

if re.match("xiang",some_text): #macth the world from the s
print "found it,too"

str1=re.split("[. ]+",some_text)
print str1

str2=re.split("[. ]+",some_text,maxsplit=2) #split the text into 3 parts
print str2

str3=re.findall("[a-zA-Z]+",some_text) #find all the substring of the text
print str3

pattern="www.python.org"
str4 = re.escape(pattern)
print str4
关于正则表达式在python中的使用,
search(pattern,string)根据包含正则表达式在字符串中寻找,返回true 或 false

match(pattern,string)在字符串的开头出进行匹配

split(pattern,string,flags)根据模式对字符串进行分割,可以通过控制参数控制分割的子结构的数目

findall(pattern,string)列出所有匹配项

escape(string),自动将字符串中的所有特殊郑则仕字符转义
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python 正则表达式