Nodejs – 拆分string
我有以下string:
'SCAR-20 | Sand Mesh (Battle-Scarred)'
我需要将其分成3个不同的部分,我的输出应该是3个variables – 例如:
var part1 = 'SCAR-20'; var part2 = 'Sand Mesh'; var part3 = 'Battle-Scared';
虽然string会改变string的结构将永远是一样的:
'part1 | part2 (part3)'
我在正则expression式很糟糕,但这是有效的;
var str = 'SCAR-20 | Sand Mesh (Battle-Scarred)' var regex = /(.+) \| (.+) \((.+)\)/ var match = str.match(regex); var part1 = match[1]; var part2 = match[2]; var part3 = match[3];
DEMO
你可以使用这个正则expression式来获得它:
var re = /^(.*).?\|(.*)\((.*)\)/; var str = 'SCAR-20 | Sand Mesh (Battle-Scarred)'; var m; m = str.match(re,''); var firstPart = m[1]; var secondPart = m[2].trim(); var thirdPart = m[2];
或者没有正则expression式:
var first = 'part1 | part2 (part3)'.split('|'); var second = first[1].split('('); var part1 = first[0].trim(); var part2 = second[0].trim(); var part3 = second[1].substring(0, second[1].indexOf(')')).trim(); console.log(part1, part2, part3);