首页 > 技术文章 > 正则表达式

yb161 2018-11-07 16:49 原文

import re

# ret = re.findall('[a-z]+', 'eva egon yuan')
# # 返回所有满足匹配条件的结果,放在列表里
# print(ret)

# ret = re.search('v', 'eva egon yuan')
#
# # 从前往后,找到一个就返回,返回一个结果的对象/ 变量
# print(ret)
# if ret:
# print(ret.group())
# 从前往后,找到一个就返回,返回的变脸需要调用group才能拿到结果,但如果没有找到
# 返回None,调用group会报错

# ret = re.match('', 'eva egon yuan')
# if ret:
# print(ret.group())
# match 是从头开始匹配,若果正则规则从头开始可以匹配上,就返回一个变量
# 内容要调用group才能显示
# 如果没有匹配上,就返回None,调用group会报错



# ret = re.split('[ab]','abcd')
# # 先按 'a'分割得到 ' '和'bcd' ,在对''和'bcd'分别按'b'分割
# print(ret)

import re
ret1 = re.sub('\d', 'H', 'eva3asd46',1) # 将数字替换成 'H', 只替换一个
print(ret1)

# re.subn('\d', 'H', 'eva3asd46') 将数字替换“H”,返回元组(结果,替换了几次)

obj = re.compile('\d{3}')
# 将正则表达式编译成一个 正则表达式对象,规则要匹配的是3个数字
ret = obj.search('asd123eeeeeee') # 正则表达式对象调用search,参数为要匹配的字符串
ret1 = obj.search('asdsa21321 sadasdasd')
print(ret.group(), ret1.group())


# import re
#
# ret = re.finditer('\d', 'as3sy4784a') # finditer 返回一个存放匹配结果的迭代器
# print(ret) # <callable_iterator object at 0x000002649F149518>
# for i in ret:
# print(i.group())



推荐阅读