这是我的字符串:
"ABC[5],DEF[3],GHF[1],GBM[1],NECU[1],KIR[1],LGAD[18]"
鉴于搜索关键字为LGAD,我的输出应为18。
我不确定如何在python中做到这一点。请同样帮我。
答案 0 :(得分:0)
您可以使用以下正则表达式:
import re
text = "ABC[5],DEF[3],GHF[1],GBM[1],NECU[1],KIR[1],LGAD[18]"
key = 'LGAD'
def find(k):
pattern = k + '\[(\d+)\]'
match = re.search(pattern, text)
return match.group(1)
result = find(key)
print(result)
输出
18
模式k + '\[(\d+)\]'
与搜索键(k
)匹配,后跟括在方括号内的一组数字。
答案 1 :(得分:0)
它看起来结构很好。我不会为此使用正则表达式。
ip = "ABC[5],DEF[3],GHF[1],GBM[1],NECU[1],KIR[1],LGAD[18]"
def parse(ip):
d = {}
items = ip.split(",")
for i in items:
key, val = i.split('[')
d[key] = int(val.strip(']'))
return d
parsed = parse(ip)
print (parsed['LGAD'])
答案 2 :(得分:0)
import re
text = "ABC[5],DEF[3],GHF[1],GBM[1],NECU[1],KIR[1],LGAD[18]"
rx = r'LGAD\[(\d+)\]'
m = re.search(rx, text)
print(m.group(1))
答案 3 :(得分:0)
您可以考虑该字符串的格式一致性,从该字符串创建一个dict
,然后使用单词作为关键字来访问所需的值:
string = "ABC[5],DEF[3],GHF[1],GBM[1],NECU[1],KIR[1],LGAD[18]"
word = "LGAD"
stringDict = dict((el[:el.find('[')],int(el[el.find('[')+1:-1])) for el in string.split(','))
print(stringDict[word])
输出:
18
您也可以使用map
函数:
stringDict = dict(map(lambda el: (el[:el.find('[')],int(el[el.find('[')+1:-1])), string.split(',')))