【发布时间】:2018-10-29 14:52:33
【问题描述】:
请在 chrome 中打开以下网址 => https://regex101.com/r/rWLAOU/1/
正则表达式:
\b(f|fall|w|winter|s|spring|su|summer)\b\s*(?<!\d)(\d{4}|\d{2})(?!\d)
测试字符串:
Fall 2018
fall 18
2016 Fall
F2016
Fall2016
我定义的正则表达式适用于所有测试字符串,除非交换捕获组顺序(2016 Fall 或 16f 或 18Su) 正则表达式中是否有一种方法可以忽略 RegExp 捕获组的顺序
【问题讨论】:
-
Please open following URL in chrome不要告诉人们去外部网站,在你的问题中发布所有相关代码。 -
@CertainPerformance 即使他发布了正则表达式,我们也必须使用 regex101 或类似的东西。
-
@revo 关键是,如果将来链接断开,该问题将无法回答或对任何人都有帮助。如果正则表达式存在问题,则不会发生这种情况。
-
@Sweeper 是的,我知道你在说什么,但你没有明白我的意思。然而,在那个 future 中——我认为你所说的未来不会在接下来的几秒钟内发生——这可能会得到答案或被关闭。所以不必担心无法回答。这对任何人也没有帮助。我更新了问题以包含正则表达式。
-
你应该解释你真正的问题是什么。我们看到了正则表达式是如何工作的,你到底需要什么?为什么你认为你需要相同的组排序?每个提供的示例字符串的最终结果应该是什么样的?请注意,您当前的正则表达式(在这篇文章中)不需要后视,它与
\b(f|fall|w|winter|s|spring|su|summer)\s*(\d{4}|\d{2})(?!\d)相同。另外,为什么不使用 4 个组并检查哪一组匹配以在结果数组中获得正确的值?见regex101.com/r/rWLAOU/3
标签: javascript regex swap capturing-group