我有这根绳子
product_id:WDC WD2500YS-18S revision:6C07 size(GB):232 state: ONLINE我需要皈依其他的东西,就像json:
{
"product_id": "WDC WD2500YS-18S",
"revision": "6C07",
"size(GB)": "232",
"state": "ONLINE"
}我尝试了这个/([^:]+)/g,但没有工作,因为我需要WD2500YS-18S与 WD2500YS-18S结合。
发布于 2014-05-22 19:01:17
您必须使用键不包含空格这一事实,并使用前瞻性检查后面的内容。
/([^\s:]+):\s*([^:]+?)(?=\s+[^\s:]+:|\s*$)/g发布于 2014-05-22 19:10:41
此解决方案不依赖查找头或后置查找,并利用浏览器内置的json解析器来验证输出是否有效。它利用了键不包含空格这一事实。所以([^ ]+):会找到一个密钥。我们只是用引号包装键和值,然后让内置的json解析器来完成剩下的工作。
var input = 'product_id:WDC WD2500YS-18S revision:6C07 size(GB):232 state: ONLINE';
console.log(JSON.parse(
'{' +
input.replace(/(^| )([^ ]+):/g,'","$2":"').substring(2) +
'"}'
));产出:
{
product_id: "WDC WD2500YS-18S",
revision: "6C07",
size(GB): "232",
state: " ONLINE"
} 发布于 2014-05-22 19:00:28
试试/([^:]+):\s?([^:]+)(?:\s|$)/g - regex101
https://stackoverflow.com/questions/23815021
复制相似问题