我有以下字符串:
Upper and lower ranch milk 125ML (3 * 8)
以及其他1000个格式不同的类似内容。我想将产品(文本部分),音量(
125ML
)和排序规则((3 * 8)
)分成单独的变量。我尝试使用excel和matlab来提出一个功能,但是未能达到预期的效果。我想提出一种聪明的方法,而不是手动筛选每个方法。所有输入表示赞赏。
最佳答案
您可以使用正则表达式,例如^(.*)( \d+ML) +\((.*)\)
说明^(.*)
组1:开头的任何字符( \d+ML)
第2组:一个空格,后跟数字和ML的体积+\((.*)\)
第3组:至少一个空格后括号之间的任何内容
应用于样本字符串
全场比赛Upper and lower 2 ranch milk 125ML (3 * 8)
第1组:Upper and lower 2 ranch milk
第2组:125ML
第3组:3 * 8
Demo
JavaScript中的样本片段
看控制台
function extractInformation(from) {
var re = /^(.*)( \d+ML) +\((.*)\)/;
var matches = re.exec(from);
if(matches) {
return {
"title" : matches[1].trim(),
"volume": matches[2].trim(),
"collation": matches[3].trim(),
}
}
return {};
}
console.log(extractInformation("Upper and lower ranch milk 125ML (3 * 8)"));
console.log(extractInformation("Upper and lower 123 ranch milk 125ML (3 * 8)"))