从字符串中剪切多字符号

时间:2015-04-16 15:01:29

标签: python regex python-2.7

我有清单:

for item in list:                                                                       
    if item.startswith('Proj') and item.split()[2].strip('"').rstrip('",') in MAIN_MODS:
    print 'Project ID: %s Project name: %s' % (item.split()[0], item.split()[2])

产生下一个结果:

Project ID: Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") Project name: "UnityUI",

我想从结果中删除Project("{"

首先我意识到 - 是split方法:

print 'Project ID: %s Project name: %s' % (item.split()[0].lstrip('Project("{').rstrip('}")'), item.split()[2].strip('"').rstrip('",'))

这让我满意:

Project ID: FAE04EC0-301F-11D3-BF4B-00C04F79EFBC Project name: UnityUI

但它看起来很糟糕......所以我试图找到更好的东西。

第二个解决方案 - 是使用re.sub(),但是 - 如何删除一个RE中的两个部分?:

print 'Project ID: %s Project name: %s' % (re.sub('(^Project\(\"\{)', '', item.split()[0]), re.sub('(^")', '', item.split()[2]))

这将仅删除前导部分(Project\(\"\{"):

Project ID: FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") Project name: UnityUI",

1 个答案:

答案 0 :(得分:2)

re.sub(r"Project\("{([^}]*)}"\)",r"\1",test_str)

您可以使用此功能。请参阅演示。您可以捕获所需内容并将其替换为\1

删除不需要的内容

https://regex101.com/r/sJ9gM7/118#python