2

我正在使用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]*

但似乎无效

希望有人可以帮助我,我将不胜感激!

4

1 回答 1

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"]

在此处检查相同的示例

于 2013-09-22T19:36:30.783 回答