我有 list :
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("{
and "
。
首先我意识到 - 是 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",
最佳答案
re.sub(r"Project\("{([^}]*)}"\)",r"\1",test_str)
您可以使用这个。请参阅演示。您可以捕获您想要的内容并替换它,通过 \1
删除不需要的内容
关于python - 从字符串中剪切多类型符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29678687/