主要介绍在Python中正则表达式的写法,主要利用Python的re库,其常用方法有:
match()
常用的匹配方法,向它传入要匹配的字符串以及正则表达式,match()会尝试从字符串的起始位置匹配正则表达式,如果匹配,就返回匹配成功的结果,如果不匹配,就返回None
import re
content='Hello 123 4567 World_This is a Regex Demo'
print(len(content))
result=re.match('^Hello\s\d\d\d\s\d{4}\s\w{10}',content)
print(result)
print(result.group())
print(result.span())
匹配目标
import re
content='Hello 1234567 World_This is a Regex Demo'
result=re.match('^Hello\s(\d+)\s\World',content)
print(result)
print(result.group())
print(result.group(1))
print(result.span())
通用匹配
.可以匹配除换行符外的任意字符
*代表匹配前面的字符无限次
import re
content='Hello 1234567 World_This is a Regex Demo'
result=re.match('^Hello.*Demo$',content)
print(result)
print(result.group())
print(result.span())
结果可以输出完整字符串
贪婪匹配和非贪婪匹配
贪婪匹配模式下 .会匹配尽可能多的字符,在后面添加一个?转换为非贪婪模式,非贪婪模式就是尽可能匹配少的字符,字符串中间的匹配尽量用非贪婪匹配。字符串结尾使用贪婪匹配。
修饰符
result=re.match(’^Hello.?(\d+)Demo$’,content,re.S)
search()
相比于match()方法,search()方法不考虑开头的内容,它会在匹配时扫描整个字符串,返回第一个成功匹配的结果,为了匹配方便,我们可以尽量使用search()方法
findall()
获取匹配正则表达式的所有内容,会搜索整个字符串,然后返回匹配正则表达式的所有内容,返回的是元组类型
sub()
字符串替换
import re
content='2ishfkd29eisjd'zzzzzzzzzzzzz
content=re.sub('\d+','',content)
print(content)
compile()
将正则字符串编译成正则表达式对象,以便在后面的匹配中复用
import re
content1='2018-11-23 12:00'
content2='2018-11-11 14:00'
content3='2018-11-05 17:00'
pattern=re.compile('\d{2}:\d{2}')
result1=re.sub(pattern,'',content1)
result2=re.sub(pattern,'',content2)
result3=re.sub(pattern,'',content3)
print(result1,result2,result3)