【问题标题】:Regex match multiple times in one line正则表达式在一行中多次匹配
【发布时间】:2019-09-14 22:59:54
【问题描述】:

我需要查找以日期/时间开头并以“附加 cmets”结尾的字符串的匹配项。当两个或多个匹配项在同一行中时,将返回整行。我知道这是由于贪婪的量词和需要一个组构造。我是 Regex 的新手,希望能得到帮助以及如何改进我迄今为止所做的工作的建议。我遵循了多个示例,但无法解决我的情况。

这是我目前所拥有的。 except '(' 用于不应匹配附加 cmets 的情况。 \d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}[^(]+附加cmets

这是一个有问题的示例行: 2018-04-19 02:57:57 - John Smith Additional cmetsHi Meredith,按照约定的票已分配给您的队列。John2018-04-19 02:11:57 - Meredith Berkenstock Additional cmets 您能否描述报告应如何填充数据对于发票 # 4257032018-04-19 02:08:27 - John Smith Additional cmetsHi Meredith,票已分配给我。

【问题讨论】:

    标签: regex regex-group regex-greedy


    【解决方案1】:

    如果贪婪是问题所在,您可以尝试使用\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}[^(]+?Additional comments?+ 之后将其变为非贪婪,https://docs.python.org/3.7/library/re.html#regular-expression-syntax

    我不太确定需要什么输出,我建议对问题进行格式化,以便空格和换行符清晰。包括当前输出和所需输出。

    【讨论】:

    • 非常感谢 user12036762,这正是我们所需要的。仅供参考,今天早上在 YouTube 上播放了几个视频后,我终于到达了那里,如果给您带来了麻烦,我很抱歉。
    猜你喜欢
    • 1970-01-01
    • 2020-10-10
    • 2015-04-27
    • 2022-01-11
    • 1970-01-01
    • 1970-01-01
    • 2017-07-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多