系列文章目录
第一章 正则表达式
文章目录
一、字符查找
示例:
string = ‘S2B_MSIL2A_20241210T232129_N0511_R058_T38CNS_20241211T000702.SAFE’
代码如下:
import re
# 查找指定长度为8的数字字符串
pattern = re.compile(r"\d{8}")
result = pattern.findall(string)
print(result)
[‘20241210’, ‘20241211’]
二、查找字符串所索引位置
1. re.seatch
代码如下:
# re.match,仅在起始位置进行字符串匹配
import re
print(re.search('S2B', string).span()) # 在起始位置匹配
result = re.search('_', string)
print(result.span()) # 不在起始位置匹配
(0, 3)
None
2. re.match
代码如下(示例):
# re.match,仅在起始位置进行字符串匹配
import re
print(re.match('S2B', string).span()) # 在起始位置匹配
print(re.match('_', string)) # 不在起始位置匹配
(0, 3)
None
三 、条件筛选
1. finditer
import re
it = re.finditer(r"\d+",string)
for match in it:
print(match.group() )
print(re.search(r"\d{8}",string).span())
2
2
20241210
232129
0511
058
38
20241211
000702
(11, 19)
2. findall
import re
result = re.findall(r"(\D[\d])",string)
print(result)
import re
result = re.findall(r"(\W[\w])",string)
print(result)
[‘S2’, ‘L2’, ‘_2’, ‘T2’, ‘N0’, ‘R0’, ‘T3’, ‘_2’, ‘T0’]
[‘.S’]
3.compile
import re
pattern = re.compile(r"\d{8}")
result = pattern.findall(string)
print(result)
[‘20241210’, ‘20241211’]
四、 字符串替换(re.sub)
#替换字符串
import re
result = re.sub(r"\d{8}", "thisisdate", string)
print(result)
result = re.sub(r"T\d{6}.*$", "thisistime", string)
print(result)
S2B_MSIL2A_thisisdateT232129_N0511_R058_T38CNS_thisisdateT000702.SAFE
S2B_MSIL2A_20241210thisistime