python正则表达式

import re #导入正则模块re

#re.match 尝试从字符串的开始匹配一个模式

text = 'jgood is a handsome boy,he is cool , cleber,and so on...'

m = re.match(r'(\w+)\s',text)

#re.search 在字符串内查找模式匹配,只匹配第一个,若无则返回None

s = re.search(r'\shan(ds)ome\s',text) 

#re.sub 替换字符串匹配项

re.sub(r'\s+','-',text)

#re.split 分割字符串

re.split(r'\s+',text)

#re.findall 获取字符串所有匹配字符

re.findall(r'\w*oo\w*',text)

#re.compile 可以把正则表达式编译成一个正则表达式对象

c = re.compile(r'\w*oo\w*')

c.findall(text)

 

* 匹配前一个字符0或无限次

+ 匹配前一个字符一次或无限次

? 匹配前一个字符0或1次

\b 表示单词的开头或结尾,空格、标点、换行都算是单词的分割

[] 表示满足括号中任一字符

任意字符是用“.”表示,而“*”则不是表示字符,而是表示数量,“?”匹配到最短的就停止,懒惰匹配,

 

[0-9],类似的还有[a-zA-Z]的用法

[0-9]* *表示的任意长度包括0,也就是没有数字的空字符也会被匹配出来,*类似的符号+,表示的则是1个或更长。限定长度,就用{}代替+

 


\w - 匹配字母或数字或下划线或汉字(3.x版本可以匹配汉字,但2.x版本不可以)
\s - 匹配任意的空白符

\d - 匹配任意数字
^ - 匹配字符串的开始
$ - 匹配字符串的结束

\S其实就是\s的反义,任意不是空白符的字符

\W - 匹配任意不是字母,数字,下划线,汉字的字符

\D - 匹配任意非数字的字符
\B - 匹配不是单词开头或结束的位置

[a]的反义是[^a],表示除a以外的任意字符。[^abcd]就是除abcd以外的任意字符。

? - 重复零次或一次
{n,} - 重复n次或更多次
{n,m} - 重复n到m次

 

 

 

 

posted @ 2017-04-25 18:17  轻幻  阅读(111)  评论(0)    收藏  举报