我希望能够抓住在#34; NETTO-PRICE之后放置在文本中的数字:" (两者之间的空间也很少。)
文字(最终这个文字有2行/行):
产品:AMD MODEL-LINE:ATHLON CORES:X2型号:7750 FREQ:2.6 CORES:6 THREADS:2 NETTO-PRICE:250.00 QUANTITY:7 PRODUCENT: INTEL MODEL-LINE:i7 CORES:X4型号:720QM FREQ:2.8 CORES:4 线程:8 NETTO-PRICE:450.00 QUANTITY:5
我试过这个:string.match(/[0-9]/g);
但它会捕获本文中的所有数字,当我只想要 NETTO-PRICE后的那些数字
然而,这不起作用,因为它显示为null:string.match(/NETTO-PRICE:[0-9]/g);
如果我试图连接这个"参数"在match()
方法中,出现错误。
[编辑]
我想只得到这个数字(作为价格),因为稍后我将计算brutto价格和netto(这个数字)和计算的brutto之间的差异。
[EDIT2]
如何更改下面的代码,使其适用于整个文本的变量,而不仅仅是引号中的文本?像var s = string.split(' ');
之类的东西和字符串包含整个文本,而且代码就像:
var s = 'NETTO PRICE: 321.321'.split(' ');
if(s[s.indexOf('NETTO') + 1] === 'PRICE:')
console.log(s[s.indexOf('NETTO') + 2])
else
console.log('fake');
答案 0 :(得分:1)
在这种情况下,您可以将正则表达式与非捕获组一起使用(请参阅related question on stackoverflow)。正则表达式看起来与此类似:/(?:NETTO-PRICE: )([0-9]+)/g
答案 1 :(得分:0)
layoutMargins
感谢@ Stubb0rn寻求有关Regex代码的帮助。