python - 从字符串中剪切多类型符号

标签 python regex python-2.7

我有 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 删除不需要的内容

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

关于python - 从字符串中剪切多类型符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29678687/

相关文章:

python - 如何将已更改的 QComboBox 的单元格行检索为 QTableWidget 的 QCellWidget?

javascript - 拆分最后一个括号中的内容

python - 使用已弃用的 Numpy API

python - 在 pybind11 中使用 opencv 类型

c - 如何从二进制文件中读取纯文本?

python - 正则表达式删除首字母缩写词中的句点?

python - 重复的 Django 模型实例和所有指向它的外键

python - time.sleep() 的替代方法

python - 将变量传递回 Python 交互式控制台 session 的调用者

python - ipython ipdb,当通过 ipdb.set_trace() 调用时,在调试时不记得命令历史