【发布时间】:2016-07-05 11:29:35
【问题描述】:
发现此解决方案有用后,
split string only on first instance of specified character
我对这实际上是如何工作的感到困惑。一个顶级评论解释说,“为了清楚起见,这个解决方案之所以有效,是因为第一个 _ 之后的所有内容都在捕获组中匹配,并因此被添加到令牌列表中。” - @艾伦摩尔
这对我来说没有意义;什么是“捕获组”?此外,作者的正面评价解决方案,
"good_luck_buddy".split(/_(.+)?/)[1]
"luck_buddy"
在 cmets 中被注意到通过省略问号,?,
split(/_(.+)/)
或省略问号和将加号 + 替换为星号 *。
split(/_(.*)/)
实际上哪个是最好的解决方案,为什么? 谢谢。
【问题讨论】:
-
也许这 - stackoverflow.com/questions/18577704/… - 是一个更好的来源。
-
@WiktorStribiżew 感谢您对这篇文章的关注。请考虑,虽然答案可能与我在这个问题上寻求的答案相对相似,但“为什么在双重匹配正则表达式中捕获组结果”这个问题与我所问的不同。谢谢!
-
其实有很多这样的问题,就search Google如果你问
.*是怎么工作的,你的问题是Learning Regular Expressions的骗子。 -
我仍然不觉得你分享的冗长答案是我想要的。我正在寻找一个简洁、具体的解决方案来正是我所问的。如果你发现了,请告诉我。谢谢!
-
我认为您的 exact 问题的答案(.split(/_(.+)?/)[i] 如何工作?)不能简洁.您需要了解该正则表达式的每个组件的作用,并且发生了很多事情。最好问一些 Google 和 SO 可以帮助您理解的组件(例如“什么是正则表达式捕获组”)。
标签: javascript jquery regex