示例字符串:
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']