如何选择目标后的目标?

时间:2013-09-22 18:47:11

标签: regex

我正在使用Burp Suit来捕获http响应并替换特定值。

例如,文字

item:["1.0|-2.0|3.0|99|5.0","2.0|5.0|7.0|99|7","10|11|12|99|14"]

我想选择三个99
这不是一个恒定的价值 但他们总是处于项目的第四位

我的预期输出是

item:["1.0|-2.0|3.0|0|5.0","2.0|5.0|7.0|0|7","10|11|12|0|14"]



这是我的正则表达式

"([0-9\.\-]*\|){3}

结果:

  

项目:[ “1.0 | -2.0 | 3.0 | 99 | 5.0”, “2.0 | 5.0 | 7.0 | 99 | 7”,“10 | 11 | 12 | 99 | 14" ]

我正在尝试使用

(?<="([0-9\.\-]*\|){3})[0-9]*

但似乎无效

希望有人可以帮助我 我很感激一些帮助!

1 个答案:

答案 0 :(得分:0)

看起来外观需要固定长度的字符串。在后面的*将不起作用。

我很惊讶为什么你需要在这里看看。尝试搜索("([0-9\.\-]*\|){3})([0-9]*)并将其替换为$1${new_num}

我不知道Burp Suit,但可以在perl中给你一个例子。

my $str = 'item:["1.0|-2.0|3.0|99|5.0","2.0|5.0|7.0|99|7","10|11|12|99|14"]';
my $new_num = 0;
$str =~ s/("([0-9\.\-]*\|){3})([0-9]*)/$1${new_num}/g;
print "${str}\n"; 

输出:

item:["1.0|-2.0|3.0|0|5.0","2.0|5.0|7.0|0|7","10|11|12|0|14"]

检查操作here

中的相同示例