【发布时间】:2015-06-04 16:12:43
【问题描述】:
我正在尝试在 Spiceworks 中运行正则表达式来解析电子邮件标题,以选择第一个时间实例以进行票证分配。 正则表达式本身有效,但它会拾取所有时间实例,而不仅仅是一个。
这是正则表达式:\.*(0[1]|1[3-7]):\d\d:\d\d
我试图通过这样做来实现非贪婪:\.*?(0[1]|1[3-7]):\d\d:\d\d
但这似乎不起作用。将问号放在量词前面并没有为此做任何事情。
什么是使这个正则表达式不贪婪或只选择第一个实例的好解决方案?
谢谢,
安德鲁 N.
编辑:我试图从正则表达式中实现的是“13:04:57”而不是整个日期。
示例字符串: 收到:由 127.0.0.1 使用 SMTP id co5csp22954317qdb; 2015 年 5 月 6 日,星期三 13:02:22 -0700 (PDT) X-收到:由 127.0.0.1 发送,SMTP id 为 j185mr26699743oig.68.1430928141923; 2015 年 5 月 6 日,星期三 13:02:21 -0700(太平洋夏令时间)
【问题讨论】:
-
你能发布一些示例数据吗?
-
请将这些示例字符串添加到问题中并添加预期输出。另外,
((?:0[1-9]|1[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]).*有帮助吗?只需抓取第一个捕获组的内容。 -
stribizhev - 一个仍然返回两个匹配项(在那个标题片段中)。
-
@user3761389:我上面的正则表达式将在时间之后返回整个字符串,但该值在捕获组内。
-
我一定是在使用不同的正则表达式测试器。我明白你现在的意思了。看起来也做了我所追求的。谢谢!
标签: regex quantifiers non-greedy spiceworks