繁体   English   中英

基于Delimiter从python中的字符串中提取子字符串

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM