import re
def replace_numbers(str_list):
result = []
for s in str_list:
if re.match(r'^apple\s', s):
new_s = re.sub(r'\d+', 'APPLE_CODE', s)
elif re.match(r'^banana\s', s):
new_s = re.sub(r'\d+', 'BANANA_CODE', s)
elif re.match(r'^cherry\s', s):
new_s = re.sub(r'\d+', 'CHERRY_CODE', s)
else:
new_s = s
result.append(new_s)
return result
str_list = ['apple 123', 'banana 456', 'cherry 789']
print(replace_numbers(str_list))
关键步骤解释:
- 导入re模块:Python的
re
模块用于处理正则表达式,这里用于匹配和替换字符串。
- 定义替换函数
replace_numbers
:该函数接受一个字符串列表作为参数,并返回处理后的字符串列表。
- 遍历字符串列表:使用
for
循环遍历输入的字符串列表str_list
,对每个字符串进行处理。
- 匹配前缀:使用
re.match
函数匹配字符串的前缀,判断是'apple'、'banana'还是'cherry'。^
表示字符串的开始位置,\s
表示空白字符(空格、制表符等)。
- 替换数字:如果匹配到相应前缀,使用
re.sub
函数将字符串中的数字替换为对应的代码。re.sub
的第一个参数是要匹配的正则表达式\d+
,表示一个或多个数字;第二个参数是替换后的字符串;第三个参数是要处理的原字符串。
- 添加到结果列表:将处理后的字符串添加到结果列表
result
中。
- 返回结果:最后返回包含处理后字符串的结果列表。
- 调用函数并输出:定义字符串列表
str_list
,调用replace_numbers
函数并输出结果。