我有一个字符串:
string="(tag, index: develop-AB123-2s), (index: develop-CD123-2s)"
我想只提取“develop-CD123-2s”,即“(index:”之后的字符串而不是带标记的字符串。我如何在python中执行?谢谢!
答案 0 :(得分:2)
警告:我不是最好的正则表达式
import re
s='(tag, index: develop-AB123-2s), (index: develop-CD123-2s)'
print re.findall("\\(.*?index: ([^)]+)", s)[1] # 'develop-CD123-2s'
替代正则表达式
re.findall("index: ([^\s)]+)", s)[1]
答案 1 :(得分:1)
>>> string.split("), (")[1].split(":")[1].split(")")[0].strip()
'develop-CD123-2s'
>>>
第一个拆分分隔每个元组,然后拆分:并取第二个结果
答案 2 :(得分:1)
你可以这样做:
string = "(tag, index: develop-AB123-2s), (index: develop-CD123-2s)"
string = string.split('(index:')
string = string[1].strip(')')
print(string)
将(index:
上的字符串拆分并剥离结束的大括号
答案 3 :(得分:1)
一种方法是使用python正则表达式 - positive lookbehind assertion
import re
string = "(tag, index: develop-AB123-2s), (index: develop-CD123-2s)"
re.findall(r"(?<=\(index:) ([^)]+)", string)
此模式仅匹配以(index:
开头的内容。您还可以查看负面的lookbehind断言以尝试匹配(tag,
部分。