从python中的文本拆分
我有一条短信 输入=ID名称出生 我想分别提取身份证、姓名和出生。所以我用从python中的文本拆分,python,python-3.x,Python,Python 3.x,我有一条短信 输入=ID名称出生 我想分别提取身份证、姓名和出生。所以我用 ID= input.split('-')[0] name= input.split('-')[1] birth = input.split('-')[2] 成功了。但有时,我的客户喜欢 输入=ID\u name\u出生 所以我需要把代码改成 ID= input.split('_')[0] name= input.split('_')[1] birth = input.split('_')[2] 我想让我的代码在任何情
ID= input.split('-')[0]
name= input.split('-')[1]
birth = input.split('-')[2]
成功了。但有时,我的客户喜欢
输入=ID\u name\u出生
所以我需要把代码改成
ID= input.split('_')[0]
name= input.split('_')[1]
birth = input.split('_')[2]
我想让我的代码在任何情况下都能工作,只要插入''''nor'-'。我们有办法解决这个问题吗 使用,并且您也不需要调用它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
我更喜欢使用或喜欢“-||”而不是方括号。谢谢。input=ID\u name\u birth.txt怎么样,我只想得到ID,name,birth。而且,有时输入的是ID\u name\u borior\u city。在您的代码中,我们需要输入四个输入来接收ID、name、birth、city=re.split'[-\]',input_str,但实际上,我只关心ID、name和birth。我们能在不知道应该输入多少的情况下得到它吗pass@Austin使用|和单个字符实际上是一种反模式,在这种情况下,字符类的速度更快-请看@John,您可以通过扩展解包丢弃其余的字符:ID、name、birth、*.=re.split'[-\]',input\str