[英]Extracting a substring from a string in python based on Delimiter
我有一个输入字符串,如: -
a=1|b=2|c=3|d=4|e=5 and so on...
我想要做的是从一个非常长的类似模式的字符串中提取d = 4部分。有没有办法根据起始点分隔符和结束点分隔符获取子字符串?
这样,我可以从'd ='开始搜索到'|' 提取它的价值。欢迎任何见解。
你可以在这里使用regex
:
>>> data = 'a=1|b=2|c=3|d=4|e=5'
>>> var = 'd'
>>> output = re.search('(?is)('+ var +'=[0-9]*)\|',data).group(1)
>>> print(output)
'd=4'
或者您也可以使用split
,这是更推荐的选项:
>>> data = 'a=1|b=2|c=3|d=4|e=5'
>>> output = data.split('|')
>>> print(output[3])
'd=4'
或者您也可以使用dic
:
>>> data = 'a=1|b=2|c=3|d=4|e=5'
>>> output = dict(i.split('=') for i in data.split('|'))
{'a': '1', 'b': '2', 'c': '3', 'd': '4', 'e': '5'}
>>> output ['d']
'4'
构建一本字典!
>>> s = 'a=1|b=2|c=3|d=4|e=5'
>>> dic = dict(sub.split('=') for sub in s.split('|'))
>>> dic['d']
'4'
如果要存储整数值,请使用for
循环:
>>> s = 'a=1|b=2|c=3|d=4|e=5'
>>> dic = {}
>>> for sub in s.split('|'):
... name, val = sub.split('=')
... dic[name] = int(val)
...
>>> dic['d']
4
您可以尝试这个“startswith”,具体哪个变量是您想要的值
string = " a=1|b=2|c=3|d=4|e=5 "
array = string.split("|")
for word in array:
if word.startswith("d"):
print word
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.