【发布时间】:2018-08-18 22:25:46
【问题描述】:
我试图在 JavaScript 中设置一个正则表达式,它可以接受像 12:13:14.15 这样的字符串(最多),但是当只做 12:13 时,它会将第一个匹配 (12) 分成两个匹配。
我已经有一段时间了,我不知道是什么原因造成的。
这是我正在使用的表达式:
^(\d+)?:?(\d+):(\d+).?(\d+)?$
根据我的尝试,它应该是这样设置的:
-
(XX:)XX:XX(.XX),其中 () 是可选的。
正如我上面提到的,将整个内容填满是可行的,并且所有内容都会进入各自的匹配项。但是省略第一个可选部分会导致它将第一个匹配项分成两个匹配项。
例如:
完整的字符串是54:13.15。它将54 拆分为与5 的一场匹配和与4 的一场匹配。我想要它做的是将54、13、15 分成组。它应该被每个: 和. 分割。
请注意,此示例没有可选部分。包含可选部分,它将正确拆分。
我还需要使用正则表达式,因为我需要限制它可以进行的拆分数量。我不希望它能够有多个 . 拆分或像 10 个 : 拆分。
对此的任何帮助表示赞赏!
【问题讨论】:
-
您能否编辑问题并添加一个示例,说明您从什么开始以及最终想要什么?这个真的不太清楚:
The full string is 54:13.15. It will split '12' into one match with '5' and one match with '4'.'12' 是从哪里来的?你只是想在:上分裂吗? -
@MarkMeyer 对不起,我错过了!我最初打算写 12 但将其更改为 54 以使其更清晰但忘记更改 12 那里。我还扩展了这个例子。
-
@UnbearableLightness 这确实成功了。它只是移动其中一根火柴,但我可以使用它。
-
Is this better ?让我知道,仍然有点不清楚你在追求什么。
标签: javascript regex