首页 > 其他 > 详细

6查找

时间:2020-05-30 00:25:14      阅读:43      评论:0      收藏:0      [点我收藏+]
"""查找"""


"""
在字符串中查找子串时,使用模块re并通过正则表达式指定被查找的子串可以实现更加强大的查找功能。模块re提供了三个实现字符串查找的方法:
一、search()
二、findall()
三、finditer()
"""
import re

"""
一、search()
search(pattern, string, flags=0):
Scan through string looking for a match to the pattern, returning
a Match object, or None if no match was found.
search()方法在参数string指定的字符串中查找参数pattern指定的第一个子串。
1、与match()方法区别在于:re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;
而re.search匹配整个字符串,直到找到一个匹配。
2、除了直接调用模块re的方法search()外,也可以调用模块re的方法compile()的返回值的方法:search(string[, pos[, endpos]])其中:
pos用于指定被匹配字符串的起始位置,默认是0
endpos用于指定被匹配字符串的结束位置,默认是字符串的长度。被匹配的子串不包括结束位置。


"""
# <re.Match object; span=(4, 7), match=‘123‘>
print(re.search(r‘\d+‘, ‘abc-123-456-789‘))
# None
print(re.match(r‘\d+‘, ‘abc-123-456-789‘))


print()

pattern = re.compile(r‘\d+‘)
print(pattern.search(‘abc-123-456-789‘)) # <re.Match object; span=(4, 7), match=‘123‘>
print(pattern.search(‘abc-123-456-789‘, 5)) # <re.Match object; span=(5, 7), match=‘23‘>


"""
二、findall()
findall(pattern, string[, flags])
在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。
除了直接调用模块re的方法findall()外,也可以调用模块re的方法compile()的返回值的方法:findall(string[, pos[, endpos]])其中:
pos用于指定被匹配字符串的起始位置,默认是0
endpos用于指定被匹配字符串的结束位置,默认是字符串的长度。被匹配的子串不包括结束位置。
"""

print(re.findall(r‘\d+‘, ‘abc-123-456-789‘)) # [‘123‘, ‘456‘, ‘789‘]

print(pattern.findall(‘abc-123-456-789‘)) # [‘123‘, ‘456‘, ‘789‘]


"""
三、finditer()
和 findall 类似,在字符串中找到正则表达式所匹配的所有子串,并把它们作为一个迭代器返回。
除了直接调用模块re的方法finditer()外,也可以调用模块re的方法compile()的返回值的方法:finditer(string[, pos[, endpos]])其中:
pos用于指定被匹配字符串的起始位置,默认是0
endpos用于指定被匹配字符串的结束位置,默认是字符串的长度。被匹配的子串不包括结束位置。
"""

iterators = re.finditer(r‘\d+‘, ‘abc-123-456-789‘)
# <re.Match object; span=(4, 7), match=‘123‘>
# <re.Match object; span=(8, 11), match=‘456‘>
# <re.Match object; span=(12, 15), match=‘789‘>
for iter in iterators:
print(iter) # match对象
print(iter.group()) # 值

6查找

原文:https://www.cnblogs.com/sruzzg/p/12990047.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!