示例字符串:
variable = ( ";CREATEDBY~string~1~~72~0~0~0~~~0" + ";CREATEDBYNAME~string~1~~800~0~0~0~~~1" + ";CREATEDBYYOMINAME~string~1~~800~0~0~0~~~2;" + "CREATEDON~date~1~yyyy-MM-dd HH:mm:ss.SSS~26~0~0~0~~~3" + ";CREATEDONUTC~date~1~yyyy-MM-dd HH:mm:ss.SSS~26~0~0~0~~~4" ) print(variable)
1、使用str.split进行分割字符串
str.split()
方法默认以空格为分隔符来分割字符串。但当我们需要使用多个分隔符时,就需要处理一下进行多次分割。
variable = ( ";CREATEDBY~string~1~~72~0~0~0~~~0" + ";CREATEDBYNAME~string~1~~800~0~0~0~~~1" + ";CREATEDBYYOMINAME~string~1~~800~0~0~0~~~2;" + "CREATEDON~date~1~yyyy-MM-dd HH:mm:ss.SSS~26~0~0~0~~~3" + ";CREATEDONUTC~date~1~yyyy-MM-dd HH:mm:ss.SSS~26~0~0~0~~~4" ) for i in variable.strip(";").split(";"): print(i.split("~", 1)[0]) #or print([i.split("~", 1)[0] for i in variable.strip(";").split(";")])
输出:
CREATEDBY
CREATEDBYNAME
CREATEDBYYOMINAME
CREATEDON
CREATEDONUTC
['CREATEDBY', 'CREATEDBYNAME', 'CREATEDBYYOMINAME', 'CREATEDON', 'CREATEDONUTC']
2、使用re.findall分割字符串
Python中,经常需要根据特定的分隔符将字符串分割成子字符串。当需要同时使用多个分隔符时,可以使用re.findall
import re variable = ( ";CREATEDBY~string~1~~72~0~0~0~~~0" + ";CREATEDBYNAME~string~1~~800~0~0~0~~~1" + ";CREATEDBYYOMINAME~string~1~~800~0~0~0~~~2;" + "CREATEDON~date~1~yyyy-MM-dd HH:mm:ss.SSS~26~0~0~0~~~3" + ";CREATEDONUTC~date~1~yyyy-MM-dd HH:mm:ss.SSS~26~0~0~0~~~4" ) result = re.findall(r';(\w+)~', variable) print(result)
输出:
['CREATEDBY', 'CREATEDBYNAME', 'CREATEDBYYOMINAME', 'CREATEDON', 'CREATEDONUTC']
3、使用split()和find()分割字符串
Python中,经常需要将一个字符串根据特定的分隔符进行分割,从而得到一个字符串列表。当需要使用多个分隔符时,可以使用split()
和find()
分割字符串。
import re variable = ( ";CREATEDBY~string~1~~72~0~0~0~~~0" + ";CREATEDBYNAME~string~1~~800~0~0~0~~~1" + ";CREATEDBYYOMINAME~string~1~~800~0~0~0~~~2;" + "CREATEDON~date~1~yyyy-MM-dd HH:mm:ss.SSS~26~0~0~0~~~3" + ";CREATEDONUTC~date~1~yyyy-MM-dd HH:mm:ss.SSS~26~0~0~0~~~4" ) result = [item[:item.find('~')] for item in variable.split(';')] print(result)
输出:
['', 'CREATEDBY', 'CREATEDBYNAME', 'CREATEDBYYOMINAME', 'CREATEDON', 'CREATEDONUTC']