Python代码实现按*分割文本并匹配提取对应电话号码
Python实现指定文本提取逻辑
处理逻辑
针对以COM*开头的文本行,按以下步骤提取目标内容:
- 以
*为分隔符拆分文本,得到各元素列表 - 检查列表中索引3、5、7的位置(对应原需求的第4、6、8个元素)
- 若位置内容为
Home/work/cell,则提取下一个位置的内容,并清理末尾的~符号
完整代码
# 示例输入行 line = "COM*IP**Home*57667*work*5646578*cell*45767~" if line.startswith('COM*'): # 按*拆分字符串 parts = line.split('*') # 定义需要检查的元素索引(对应原需求第4、6、8个元素) target_indices = [3, 5, 7] result = {} for idx in target_indices: # 确保索引不越界,避免报错 if idx + 1 < len(parts): current_key = parts[idx].strip() if current_key in ('Home', 'work', 'cell'): # 提取号码并清理末尾的~ phone_num = parts[idx+1].strip().rstrip('~') result[current_key] = phone_num # 打印提取结果 for key, num in result.items(): print(f"{key}: {num}")
代码说明
startswith('COM*'):过滤出符合格式的目标行split('*'):将文本拆分为元素列表,方便按位置取值- 遍历指定索引,检查关键词后提取对应号码,同时用
rstrip('~')清理末尾的多余符号 - 最终以键值对形式输出提取到的号码,清晰展示各类型对应的联系方式
内容的提问来源于stack exchange,提问作者Mercy Florence
相关产品推荐
相关产品推荐

