python - 提取特定的字符串

时间:2016-10-12 22:11:47

标签: python

我有一个字符串:

    string="(tag, index: develop-AB123-2s), (index: develop-CD123-2s)"

我想只提取“develop-CD123-2s”,即“(index:”之后的字符串而不是带标记的字符串。我如何在python中执行?谢谢!

4 个答案:

答案 0 :(得分:2)

警告:我不是最好的正则表达式

import re
s='(tag, index: develop-AB123-2s), (index: develop-CD123-2s)'
print re.findall("\\(.*?index: ([^)]+)", s)[1]  # 'develop-CD123-2s'

Regex Demo

替代正则表达式

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,部分。