我正在尝试提取字符串中的测量值。
这是我目前的方法:
const string = '10mL 5mL';
const regex = `([0-9]*mL)|([0-9]*g)|([0-9]*gallon)|([0-9]*kg)|([0-9]*L)|([0-9]*mg)|([0-9]*patches)`;
console.log(string.matches(regex));
因此,我期望输出为
['10mL', '5mL']
。当我检查日志时,它仅提取第一个10mL
[ '10mL',
'10mL',
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
index: 0,
input: '10mL 5mL',
groups: undefined ]
关于我在这里缺少什么的任何提示?谢谢!
最佳答案
您要查找的功能是match
,而不是matches
。您也可以像这样紧凑的形式编写正则表达式,
/(\d+\s*(?:mL|g|gallon|kg|L|mg|patches))/g
试试这个JS代码,
const string = '10mL 5mL 25 mL';
const regex = /(\d+\s*(?:mL|g|gallon|kg|L|mg|patches))/g;
console.log(string.match(regex));