我有这个输入:
stuff (2+13:02)
more stuff (20:32)
more more stuff (8+23:00)
2+
是可选的,代表一个完全不同的值,所以我写了这个正则表达式:
/((?:(\ d)+)(\ d +:?\ d +))/ G
$1
应始终为+
之前的数字,并将其余数字和:
中的$2
分组,但并非总是如此。在(20:32)
的示例中,$1
将为2
,$2
将为0:32
。如何制作$1
undef
和$2 = 20:32
?
有什么想法吗?
谢谢!
答案 0 :(得分:6)
尝试将?
移动到您想要选择的组之后。如果您想要匹配文字+
:
+
/(?:(\d)\+)?(\d+:\d+)/g
这将匹配:
+
:
,后跟一个或多个数字,在第2组中捕获