我正在尝试提取字符串中的测量值。

这是我目前的方法:


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));

09-13 03:34