the*_*ane 0 javascript ruby matlab
我有以下字符串:
Upper and lower ranch milk 125ML (3 * 8)
Run Code Online (Sandbox Code Playgroud)
和1000个其他类似的格式不同的.我想将产品(文本部分),volume(125ML)和collation((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
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)"))Run Code Online (Sandbox Code Playgroud)