正则表达式仅匹配匹配组 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 中日期的最后一部分 [重复]的主要内容,如果未能解决你的问题,请参考以下文章