使用javascript将字符串提取为数组

使用javascript将字符串提取为数组,javascript,regex,Javascript,Regex,我有一根绳子 make -j128 我需要从那个字符串中提取-j128 现在为什么我需要字符串数组作为输出,我有一种情况,我将得到字符串作为输出 repo sync -j32 && make -j128 在这种情况下,我需要得到-j32和-j128 因此,第一种情况下的输出为[-j128],第二种情况下的输出为[-j32,-j128] 我想要的最终结果是没有-j的数字,也就是[128]和[32128],我可以通过去掉前面的-j来处理。如果你们认为为什么我不能从一开始就提取数字

我有一根绳子

make -j128
我需要从那个字符串中提取-j128

现在为什么我需要字符串数组作为输出,我有一种情况,我将得到字符串作为输出

repo sync -j32 && make -j128
在这种情况下,我需要得到-j32和-j128

因此,第一种情况下的输出为[-j128],第二种情况下的输出为[-j32,-j128]

我想要的最终结果是没有-j的数字,也就是[128]和[32128],我可以通过去掉前面的-j来处理。如果你们认为为什么我不能从一开始就提取数字。这是有原因的,因为字符串也可以是这样

repo blah blah 123 blah -j32 blah 3 blah 
我只需要32个,以-j开头


即使在谷歌搜索了很多次之后,我也无法找到解决方案,因为我不太喜欢正则表达式。任何帮助都将不胜感激,提前感谢。

以下是一个简单的解决方案:

常数s='repo sync-j32&&make-j128'; 常数re=/-j\d+/g 常数result1=s.matchre; 常量result2=result1.mapx=>+x.replace/\D/g; console.logresult1;
console.logresult2 可以使用以下正则表达式匹配前缀为-j的所有数字:

然后使用.exec匹配所有组并将它们放入一个数组中

请参见下面的工作示例: const str=repo sync-j32和make-j128; 设nums=[]; 设regex=/-j\d+/g; whilematch=regex.execstr{ 推送+匹配[1]; }
console.lognums;数字总是以-开头吗?而且它们是唯一以-开头的东西吗?是的,它总是以-jyesp开头。它工作得很好,谢谢你的时间兄弟@Robby Cornelissen。我认为这个解决方案更好,因为它工作得很好,即使字符串是空的。
/-j(\d+)/g