首页 > 解决方案 > 从python中的文本拆分

问题描述

我有一个喜欢的文字

输入 = ID-姓名-出生

我想分别提取身份证、姓名和出生。所以我用

ID= input.split('-')[0]
name= input.split('-')[1]
birth = input.split('-')[2]

有效。但有时,我的客户插入喜欢

输入 = ID_name_birth

所以我需要将代码更改为

ID= input.split('_')[0]
name= input.split('_')[1]
birth = input.split('_')[2]

我想让我的代码在插入'_'或'-'的任何情况下都能工作。我们有办法解决这个问题吗?

标签: pythonpython-3.x

解决方案


使用re.split,你也不需要调用它3次,使用解包:

import re

for input_str in 'id-name-birth', 'id_name_birth':
    ID, name, birth = re.split('[-_]', input_str)
    print(ID, name, birth)

输出

id name birth
id name birth

推荐阅读