python - 正则表达式 - 以更简洁的方式重复捕获组模式
问题描述
我开始研究正则表达式,我得到了以下问题。正文如下:
00 0-23/2 * * * ubuntu source /home/ubuntu/virtualenv/ .........
10 17 8 1,3,6,12 * ubuntu source /home/ubuntu/virtualenv/ .............
25 6 * * * root test -x /usr/sbin/anacron || ( .....................
47 6 * * 7 root test -x /usr/sbin/anacron || ( ......................
52 6 1 * * root test -x /usr/sbin/anacron ||....................
我用这个正则表达式,python re
包:
"[\d\*,/-]+\s{1,}[\d\*,/-]+\s{1,}[\d\*,/-]+\s{1,}[\d\*,/-]+\s{1,}[\d\*,/-]+"
它返回我每行的前 5 个数字信息。但是写5遍就不好了[\d\*,/-]+
……
我尝试了类似或符号的变体(([\d\*,/-]+)\s{1,}){5}
,以获取感兴趣的捕获组并重复它。(?([\d\*,/-]+)\s{1,}){5}
()
我的感觉是我没有理解这个符号,或者还有另一种合适的语法来解决我想要解决的问题(避免[\d\*,/-]+
重复)。
你可以帮帮我吗?
谢谢!
解决方案
假设您想保留捕获的数据,您可能只是缺少一个围绕重复捕获组的捕获组,以便您的正则表达式捕获的不仅仅是最后一次出现的数据。
(([\d*,/-]+\s+){5})
使用了类似的东西:
import re
inputString = ...
expression = re.compile("(([\d*,/-]+\s+){5})")
matches = expression.findall(inputString)
print(matches)
可能有用的参考资料:
推荐阅读
- django - Pycharm 的 Django 项目中的 ctrl+click 功能被破坏
- google-sheets - 如何在谷歌表中添加偏移的单个字段
- github - Github 桌面 - 分支依赖(自动更新?)
- go - 使用 Echo 框架在 Go Lang 中安装 SSL 证书时出现问题(客户端向 HTTPS 服务器发送了 HTTP 请求。)
- python - 树莓派 vlc-python 没有声音
- magento2 - 在下订单时,magento 2.3.2 EE 中的某些事务尚未提交或回滚
- javascript - Apexcharts 时间与 JavaScript/Python 不匹配
- sql - 比较日期并使用 SQL 将其分类为新列?
- azure - 在 Windows 2012 r2 中无法访问 Azure 文本转语音
- javascript - 如何在 ag-grid 上使用非托管拖动?