Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 正则表达式搜索时间不希望不贪婪_Regex_Quantifiers_Non Greedy_Spiceworks - Fatal编程技术网

Regex 正则表达式搜索时间不希望不贪婪

Regex 正则表达式搜索时间不希望不贪婪,regex,quantifiers,non-greedy,spiceworks,Regex,Quantifiers,Non Greedy,Spiceworks,我正在尝试在Spiceworks中运行一个正则表达式,通过电子邮件头解析来选择时间的第一个实例,以便进行票证分配。正则表达式本身是有效的,但它会拾取所有时间实例,而不仅仅是一个 这是正则表达式:\.*0[1]| 1[3-7]:\d\d:\d\d 我试图通过这样做来实现非贪婪:\.*0[1]| 1[3-7]:\d\d:\d\d 但这似乎不起作用。把问号放在量词前面并没有起到任何作用 什么是使这个正则表达式不贪婪或只获取第一个实例的好解决方案 谢谢 安德鲁N 编辑:我想从正则表达式中得到的是13:0

我正在尝试在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为CO5CSP2954317QDB;2015年5月6日星期三13:02:22-0700 PDT X-Received:by 127.0.0.1,SMTP id为j185mr26699743oig.68.1430928141923;2015年5月6日星期三13:02:21-0700 PDT与之前的模式匹配1次。如果您发布一个示例标题,我可以测试正则表达式以确保所有内容都正确无误。尝试以下方法

(.*(0[1]|1[3-7]):\d\d:\d\d){1}

您可以使用此基于前瞻的正则表达式来匹配由正则表达式匹配的时间的第一个实例:

/^(?:(?!(?:0[1]|1[3-7]):\d\d:\d\d).)*((?:0[1]|1[3-7]):\d\d:\d\d)/m
?!。。。是一个负的前瞻,确保在匹配时间之前没有其他时间实例,因此只匹配第一个实例


您可以发布一些示例数据来处理吗?请将这些示例字符串添加到问题中,并添加预期的输出。还有,有没有?:0[1-9]| 1[0-9]| 2[0-3]:[0-5][0-9]:[0-5][0-9].*帮助?只需抓取第一个捕获组的内容即可。stribizhev-该组仍会在标题的剪报中返回两个匹配项。@user3761389:我上面的正则表达式将在时间之后返回整个字符串,但该值在捕获组中。我一定使用了不同的正则表达式测试器。我现在明白你的意思了。看起来我也在追求什么。谢谢成功了。非常感谢。另外,您将如何从这个问题的第一个实例开始解析?我注意到,我从另一个与regex:Received:byip和smtpid相匹配的区域进一步向下移动页面;2015年5月6日星期三08:58:05-0700 PDT08:58:05也应与该行匹配。你可以玩我的演示链接,并在那里提供一个示例数据。