正则表达式仅匹配匹配组 1 中日期的最后一部分 [重复]

Posted

技术标签:

【中文标题】正则表达式仅匹配匹配组 1 中日期的最后一部分 [重复]【英文标题】:Regex only matches last part of date in match group 1 [duplicate] 【发布时间】:2020-04-22 14:38:46 【问题描述】:

我有以下字符串:

22/04/2020 14:10 by example@example.com

我写了以下正则表达式: ^(\d2,4\/?)+

为什么第 1 组只匹配日期的最后一部分而不是整个日期,我该如何解决这个问题?

https://regex101.com/r/Pc4McX/1/

【问题讨论】:

您正在重复捕获组,捕获最后一次迭代的值。为什么不匹配格式? ^\d2/\d2/\d4 是的,这也是一种选择,但我想知道它也可以按照我的方式进行修复。 好的,我想我通过^((?:\d2,4\/?)+)解决了它 您可以将其设为非捕获组,而不是 ^(?:\d2,4\/?)+,它也可能在末尾匹配 / 【参考方案1】:

请注意,正则表达式将所有匹配项存储在数组中 - 首先检查您的代码中的所有匹配项。 我认为你需要的数据——已经匹配——你只需要存储它。 在 Regex101 - 完全匹配之后 - 将是您的 arr[0]。 如果您使用的是 php - 检查这个 regex-tester = https://www.phpliveregex.com/

我的正则表达式:

^(\d+\W)*

【讨论】:

这如何解决我的问题?这将匹配所有数字和 A-Za-z0-9_

以上是关于正则表达式仅匹配匹配组 1 中日期的最后一部分 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

仅匹配指定字符的最后一次出现的正则表达式

无法使用 Java 正则表达式匹配字符串的最后部分 [重复]

js 正则获取匹配部分最后一个内容

从正则表达式仅返回部分匹配项

从正则表达式仅返回部分匹配项

正则表达式:匹配多个平衡组