python - Python Regex 循环非捕获组
问题描述
我有以下字符串:
12/27/2016 08:05 AM (GMT+01:00) added by Operator A (PID-000301):\r\nOthers/Malfunction;Device failure not specified;It Crasched during upgrade\r\n\r\n*************************************************************************************************\r\n12/26/2016 08:06 AM (GMT+01:00) added by Operator B (PID-000301):\r\nOthers/Malfunction;Device failure not specified;It Crasched during upgrade\r\n\r\n*************************************************************************************************\r\n12/23/2016 08:06 AM (GMT+01:00) added by Operator C (PID-000301):\r\nOthers/Malfunction;Device failure not specified;It Crasched during upgrade\r\n\r\n*************************************************************************************************\r\n12/22/2016 08:05 AM (GMT+01:00) added by Operator A (PID-000301):\r\nOthers/Malfunction;Device failure not specified;It Crasched during upgrade\r\n\r\n*************************************************************************************************\r\n12/22/2016 12:57 AM (GMT+01:00) added by Operator B (PID-000301):\r\nOthers/Malfunction;Device failure not specified;It Crasched during upgrade\r\n\r\n*************************************************************************************************\r\n12/21/2016 02:03 AM (GMT+01:00) added by Operator C (PID-000301):\r\nOthers/Malfunction;Device failure not specified;It Crasched during upgrade\r\n\r\n'
如您所见,if 具有重复的短语:
12/27/2016 08:05 AM (GMT+01:00) added by Operator A/B/C (PID-000301): ...
我想通过编写一个正则表达式来清除这个重复出现的短语并将其删除。到目前为止,我已经写过类似的东西:
r'(?:\n?\d\d\/\d\d\/\d\d\d\d.+\(PID-\d{6}\):)+([\w\W]+)'
但是,这只会删除第一次出现的重复短语。我如何“循环”它,以便它拾取所有实例?
解决方案
import re
s = '12/27/2016 08:05 AM (GMT+01:00) added by Operator A (PID-000301):\r\nOthers/Malfunction;Device failure not specified;It Crasched during upgrade\r\n\r\n*************************************************************************************************\r\n12/26/2016 08:06 AM (GMT+01:00) added by Operator B (PID-000301):\r\nOthers/Malfunction;Device failure not specified;It Crasched during upgrade\r\n\r\n*************************************************************************************************\r\n12/23/2016 08:06 AM (GMT+01:00) added by Operator C (PID-000301):\r\nOthers/Malfunction;Device failure not specified;It Crasched during upgrade\r\n\r\n*************************************************************************************************\r\n12/22/2016 08:05 AM (GMT+01:00) added by Operator A (PID-000301):\r\nOthers/Malfunction;Device failure not specified;It Crasched during upgrade\r\n\r\n*************************************************************************************************\r\n12/22/2016 12:57 AM (GMT+01:00) added by Operator B (PID-000301):\r\nOthers/Malfunction;Device failure not specified;It Crasched during upgrade\r\n\r\n*************************************************************************************************\r\n12/21/2016 02:03 AM (GMT+01:00) added by Operator C (PID-000301):\r\nOthers/Malfunction;Device failure not specified;It Crasched during upgrade\r\n\r\n'
s = re.sub(r'\s*\d{2}/\d{2}/\d{4}.+\(PID-\d{6}\):', '', s)
print(s)
印刷:
Others/Malfunction;Device failure not specified;It Crasched during upgrade
*************************************************************************************************
Others/Malfunction;Device failure not specified;It Crasched during upgrade
*************************************************************************************************
Others/Malfunction;Device failure not specified;It Crasched during upgrade
*************************************************************************************************
Others/Malfunction;Device failure not specified;It Crasched during upgrade
*************************************************************************************************
Others/Malfunction;Device failure not specified;It Crasched during upgrade
*************************************************************************************************
Others/Malfunction;Device failure not specified;It Crasched during upgrade
推荐阅读
- c++ - 控制台在立即获得输入后立即退出
- swift - Swift 断言失败
- amazon-web-services - 在ec2中部署rest api并通过https服务
- node.js - Express JS 上的 UnhandledPromiseRejectionWarning
- linux-kernel - 我在哪里可以找到在 Debian Stretch 上构建网络驱动程序的 pci_find_device() 声明?
- rxjs - withLatestFrom 在 switchMap 中不起作用
- sql - 循环遍历 2 个表的优化方式,其中一个表很大
- wxwidgets - 嵌入 wxWidget 控件
- sql - SQL。如果没有相应的正金额,则隐藏负金额
- javascript - 从类内部切换按钮状态 (p5.js)