您的位置:首页 > 其它

正则表达式的一般用法

2018-01-10 14:36 190 查看
重点是学会正则表达式的书写,写不好查取得数据就很杂乱,尤其是在以后的爬取网页提取html内容时会很麻烦

# coding: utf-8
# python 内置re模块,用来支持正则表达式
import re
# 正则表达式

string = 'abccccccdedfdgbgds'

# 1.构造正则表达式
# a.* 贪婪模式 匹配到abbcdefggs全部
# a.*? 非贪婪模式 匹配到a 尽可能少的匹配字符
pattern = re.compile('a.*b')
# 2.使用正则表达式,在大字符串中搜索数据
# match() 1.正则表达式 2.要进行搜索的字符串
# match() 如果搜索的字符串是以正则表达式开头的字符,则可以搜索到结果,返回结果对象,如果搜不到,则返回None
rs = re.match(pattern, string)
# 判断结果是非为空,如果为空,就不再取值
if rs:
print rs.group()
else:
print '没有查询到结果!'

# search() 搜索函数 不需要以正则表达式开头,只要在大字符串中存在符合正则的字符,就可以查到,会搜索第一个匹配的数据
pattern1 = re.compile('b.*?d')
# 1.正则  2.搜索字符串
rs = re.search(pattern1, string)
if rs:
print rs.group()
else:
print '没有匹配到数据'

# findall() 会将大字符串中所有符合规则字符全部找到,并且以列表的形式返回,如果搜索不到结果,返回一个空列表
# 1.正则  2.搜索字符串
rs = re.findall(pattern1, string)
if rs:
for content in rs:
print content

# r 把后面的字符串原样保存  原样字符串,不会对字符串中的转译字符进行转译
string_2 = r'1.查找学员\n2.添加学员\n3.退出'
# replace() 替换源字符串中的某些字符
rs = string_2.replace(r'\n',',')
print rs

# sub()替换原字符串中的某些符合条件的数据
pattern2 = re.compile(r'\\n')
# 1.正则  2.替换后的字符串  3.要进行替换的字符串
rs = re.sub(pattern2, ',', string_2)
print rs

string3 = 'abcdefghigkdlmhn'
pattern3 = re.compile(r'd.*?h')
rs = re.sub(pattern3,'------',string3)
print rs
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: