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)omes',text)
#re.sub 替换字符串匹配项
re.sub(r's+','-',text)
#re.split 分割字符串
re.split(r's+',text)
#re.findall 获取字符串所有匹配字符
re.findall(r'w*oow*',text)
#re.compile 可以把正则表达式编译成一个正则表达式对象
c = re.compile(r'w*oow*')
c.findall(text)
* 匹配前一个字符0或无限次
+ 匹配前一个字符一次或无限次
? 匹配前一个字符0或1次
表示单词的开头或结尾,空格、标点、换行都算是单词的分割
[] 表示满足括号中任一字符
任意字符是用“.”表示,而“*”则不是表示字符,而是表示数量,“?”匹配到最短的就停止,懒惰匹配,
[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次