Javascript只拆分一次并忽略其余部分

bab*_*her 8 javascript regex split

我正在解析一些由冒号分隔的键值对.我遇到的问题是在值部分中有冒号我想忽略但是split函数无论如何都要拾取它们.

样品:

Name: my name
description: this string is not escaped: i hate these colons
date: a date
Run Code Online (Sandbox Code Playgroud)

在各行上我尝试了这个,line.split(/:/, 1)但它只匹配数据的值部分.接下来我尝试line.split(/:/, 2)但是这给了我['description', 'this string is not escaped'],我需要整个字符串.

谢谢您的帮助!

awm*_*awm 15

a = line.split(/:/);
key = a.shift();
val = a.join(':');
Run Code Online (Sandbox Code Playgroud)


Jar*_*eer 10

使用非贪婪的运算符(?)仅拆分第一个实例.

line.split(/: (.+)?/, 2);

  • 那么你将不得不采用不太优雅的解决方案.我不是一个心灵读者抱歉:/ (3认同)
  • 所以我可以确认一些事情,先关闭,`?`不是贪婪的运算符,它是非贪婪的运算符,并且代码与`/ :(.+)/`一起正常工作,其次,使用此代码,javascript返回splits然后返回任何捕获组(`()`中的东西)?是对的吗?我不知道这个功能! (2认同)