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

不知是因为自己太低端还是其他的什么原因,别人都说的正则表达式非常强大,可是我的意识中正则表达式有用,但总是觉得没有传说中的那么厉害。也有可能是自己没有真正的理解它吧。在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 reif re.search("xiang",some_text): #find the world in the textprint "found it"if re.match("xiang",some_text): #macth the world from the sprint "found it,too"str1=re.split("[. ]+",some_text)print str1str2=re.split("[. ]+",some_text,maxsplit=2) #split the text into 3 partsprint str2str3=re.findall("[a-zA-Z]+",some_text) #find all the substring of the textprint str3pattern=""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的re模块及正则表达式的使用

相关文章:

你感兴趣的文章:

标签云: