我有一些我经常需要手动更改的数字列表,当它运行时,现在在 var str(下面的#1)中列出了一个小样本,它给出了(#2)作为输出。我想要发生的是 var xyz 每次遇到新部分时都会更改,并继续用新的 var 标记它们,直到它进入下一个部分。(#3) 我希望我的问题很清楚。(显然不是......)我知道我做错了什么,而且这可能不是一开始就以最好的方式编写的。因此,任何提示将不胜感激。
(19.32 规格 03 20.56 2 20.84 3 39.32 规格 04 30.56 2 30.84 3)
(19.32 规格 03 20.56 规格 06 20.84 规格 06 39.32 规格 04 30.56 规格 06 30.84 规格 06)
( 19.32 spec03 20.56 spec03 20.84 spec03 39.32 spec04 30.56 spec04 30.84 spec04) [粗体值是新部分的第一个实例]
var xyz = 'spec06';
var str = '19.32 spec03 20.56 2 20.84 3';
var patt1 = /([0-9]+\.[0-9]+\t)([0-9]+)/;
var patt2 = /([0-9]+\.[0-9]+\t)(spec[0-9]+)/;
function cleaner() {
for (i = 1; i <= 150; i++) {
//xyz = str.replace(patt2, '$1') <-- this crashes the program...?
str = str.replace(patt1, '$1' + xyz)
}
}
实时版本注意:您需要一些制表符分隔的输入才能响应...
这里是一些输入的样品,我将使用:278.091182 spec35 279.300274 2 279.842670 3 280.204268 281.006563 4 5 6 281.503759 282.339954 7 282.532053 8 282.690252 9 283.300448 10 285.357034 11 285.718632 12 286.407927 287.809118ëspec36 288.747012 2 288.927811 3 289.266809 4