Javascript NodeJS,如何解析这样的字符串?
我想解析以下字符串 3693,《有毒复仇者》(1985年),喜剧《恐怖》 到 3693,Javascript NodeJS,如何解析这样的字符串?,javascript,Javascript,我想解析以下字符串 3693,《有毒复仇者》(1985年),喜剧《恐怖》 到 3693, 《有毒复仇者》(1985年), 喜剧——恐怖 类似地,以下是 161944,《美国最后一个砖匠》(2001),戏剧 应该解析为 161944 美国最后一个砖匠(2001) 戏剧 我不能用逗号分割,因为“,”中有一个逗号 工作解决方案: LS05建议我使用“子字符串”,所以我这样做了,效果非常好。 给你 var pos1 = line.indexOf(','); var line = line
《有毒复仇者》(1985年),
喜剧——恐怖 类似地,以下是 161944,《美国最后一个砖匠》(2001),戏剧 应该解析为 161944 美国最后一个砖匠(2001) 戏剧 我不能用逗号分割,因为“,”中有一个逗号 工作解决方案: LS05建议我使用“子字符串”,所以我这样做了,效果非常好。 给你
var pos1 = line.indexOf(',');
var line = line.substring(pos1+1);
pos1 = line.indexOf(',');
pos2 = line.lastIndexOf(',');
let movie_id = line.substring(0,pos1);
let movie_tag = line.substring(pos1+1,pos2);
let movie_timespan = line.substring(pos2+1);
感谢LS05:)您可以使用CSV解析器,例如,或者如果您觉得不需要第三方库,您可以查看一下。您可以使用正则表达式来解析字符串,该字符串将排除引号内的逗号
var str = '3693,"Toxic Avenger, The (1985)",Comedy|Horror';
console.log(str.match(/(".*?"|[^",\s]+)(?=\s*,|\s*$)/g).join("\n"));
(如果您想了解上述正则表达式的工作原理,请参阅学分)
就代码而言,我尝试拆分字符串,忽略字符串中的逗号,然后使用新行字符再次加入数组项\n
这是什么类型的数据?也许您可以将第一部分和最后一部分分为子字符串,这样标题就会remain@alim哦,好吧,我的评论是基于你的示例数据:)@LS05实际上你的想法是最好的,效果很好。谢谢!:)@阿利姆好!也许您可以显示代码(或使用此策略的部分)以供解决方案的流程参考:)这将删除行尾的
,
<代码>加入(“,\n”)可能有帮助它有问题。无法解析此字符串“161944,美国最后一个砖匠(2001),戏剧”。如果没有“”,则删除字符串。我又添加了一个示例。请你检查一下好吗@alim您需要调整您的正则表达式示例,但是您需要调整它,以便它能够与任何类型的quotes@alim试试这个console.log(str.match(/([“].*?[“]|[^”,\s]+)(?=\s*,|\s*$)/g)。join(“\n”);
(虽然不是100%确定它是否会破坏其他内容),这将接受单引号和双引号字符串