python正则判断列表是否有元素_一文学会python正则表达式

在编程中,经常会涉及到字符串的操作,一个常用的策略就是利用split函数,然后对于特定的字符串进行匹配,但是这种方法格式复杂,可复用性较差。

正则表达式是处理字符串匹配一个必不可少的方法,定义一个语义规则,来进行特定的字符字符串的规则。

正则表达式速查表

1 元字符,用特殊符号表示一类元素

在编程中,经常会涉及到字符串的操作,一个常用的策略就是利用split函数,然后对于特定的字符串进行匹配,但是这种方法格式复杂,可复用性较差。

正则表达式是处理字符串匹配一个必不可少的方法,定义一个语义规则,来进行特定的字符字符串的规则。

正则表达式速查表

1 元字符,用特殊符号表示一类元素

2 字符组 [],限制范围,某个位置只能出现这个范围内的某个元素。

3 量词,表示数量,约束前面元字符出现的次数。

re模块包函数

# 导入包

import re

################re.compile() 编译

# 将正则表达式编译成一个正则表表达式对象。

# 如果一个正则表达式在程序中只用一次,就没必要编译了。

# 如果同一个正则表达式要被多次使用时,就需要对表达式进行编译,以便后续使用。

例如:匹配www.baidu.com

pattern = r'w*\.[a-z]{5}\.[a-z]*'

prog = re.compile(pattern)

string = 'www.baidu.com'

result = prog.match(string)

# 如果匹配成功返回match对象,不成功返回None

###################re.findall() 返回列表

# 一、re.findall(正则表达式,待匹配的字符串,flags=0)

# 二、findall默认只显示分组中的,分组有优先级。

pattern = r'w{3}\.(baidu|oldboy)\.com'

prog = re.compile(pattern)

ret = re.findall(prog, 'www.baidu.com')

print(ret)

# 结果:['baidu']

# 三、加上 ?: 取消分组的优先

# ret = re.findall('www\.(?:baidu|oldboy)\.com', 'www.baidu.com')

# print(ret)

# 结果:['www.baidu.com']

###################re.match()

#从头匹配

re.match(pattern, string, flags=0)

#如果 string 开始的0或者多个字符匹配到了正则表达式样式,就返回一个相应的 匹配对象 。 如果没有匹配,就返回 None ;

#需要group(),才能返回值

###################re.search()

#扫描整个 字符串 找到匹配样式的第一个位置,并返回一个相应的 匹配对象。如果没有匹配,就返回一个 None ; 注

#同样需要group(),才能的返回值

####################re.sub()、re.subn()

# re.sub()

re.sub(r'\sAND\s', ' & ', 'Baked Beans And Spam', flags=re.IGNORECASE) # 【表达式表示替换内容,要替换的新元素,替换对象,替换次数】

# 结果为:'Baked Beans & Spam'

# re.subn()

re.subn(r'\sAND\s', ' & ', 'Baked Beans And Spam', flags=re.IGNORECASE) # 【返回元组,前面是替换完的结果,后面是替换的次数】

结果是('Baked Beans & Spam', 1)

你可能感兴趣的:(python正则判断列表是否有元素_一文学会python正则表达式)