正则表达式学习

普通字符 ,元字符

根据业务场景选择元字符

字符或:[]

[ac] :a 或者c

[^cfd] :不是c,或者不是f 或者不是d

[c-f] 匹配c-f之间的字符

概括字符集

数字字符[0-9]:\d

非数字字符[^0-9]:\D

数字\字母[A-Za-z0-9_]:\w

非单词字符[' ' '\t' ,'&' ,'\n' ,'\r']:\W

空白字符[' ' '\t' ,'\n' ,'\r']:\s

匹配除\n之外的所有字符:.

贪婪非贪婪匹配

[a-z]{3} 表示匹配3个a-z字符

[a-z]{3,6} [a-z] 重复3-6次 默认贪婪匹配

[a-z]{3,6}? [a-z] 重复3-6次 非贪婪匹配

数量词

* 匹配0次或者无限多次

+ 匹配1次或者无限多次

?匹配0次或者1次

边界匹配

'^  $'

'^' 字符串开始匹配

'$' 字符串末尾

组的概念

(python){3}(js)

() 且的关系

[] 或的关系

匹配模式参数

re.findall('c#',language,re.I | re.S) #两种模式都满足

查找并替换,函数当参数

re.sub

s = 'A123b333'

def convert(value):

    matched = value.group()

    if int(matched) >=6:

        return '9'

    else :

        return '0'

r = re.sub('\d',convert,s,count=0)

match,search

r= re.match('\d' ,s) # match尝试从字符串开始位置匹配

r1 = re.search('\d',s) # search 会尝试从整个字符串搜索

一旦找到停止匹配---同findall区别

group

s= 'life is short,i use python'

r = re.search('life(.*)python',s)

print(r.group(0)) # 完整匹配结果

print(r.group(1))

print(r.group(0,1,2)) # 元组

r1 = re.findall('life(.*)python',s)

你可能感兴趣的:(正则表达式学习)