我有清单:
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",
答案 0 :(得分:2)
re.sub(r"Project\("{([^}]*)}"\)",r"\1",test_str)
您可以使用此功能。请参阅演示。您可以捕获所需内容并将其替换为\1