使用javascript或ruby拆分此字符串

the*_*ane 0 javascript ruby matlab

我有以下字符串:

Upper and lower ranch milk 125ML (3 * 8)
Run Code Online (Sandbox Code Playgroud)

和1000个其他类似的格式不同的.我想将产品(文本部分),volume(125ML)和collat​​ion((3 * 8))分离为单独的变量.

我尝试使用excel和matlab来提出一个函数,但还没有达到预期的效果.我想提出一个聪明的方法,而不是手动筛选每一个.所有输入赞赏.

Ste*_*aud 6

例如,您可以使用正则表达式 ^(.*)( \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)