JSFiddle - React, Tailwind, and code Playground
by msm595
JavaScript
var str = "ei1274085446e***4:infod6:lengthi339738624e4:name37:archlinux-2010.05-netinstall-dual.iso12:piece lengthi524288e6:pieces1:se**dsdsdsd";
var start = 0,end = 0, depth = 0;
start = str.indexOf('4:info') + 7;//6;
end = start ;//+ 1;
depth = 1;
var keypat = /^(\d+):/,
numpat = /^i\d+e/,
endpat = /^e/;
while(end<str.length) {
var sub = str.substring(end);
var match = keypat.exec(sub);
if(match != null) {
end += match[0].length + (1*match[1]);
console.log(match);
continue;
}
match = numpat.exec(sub);
if(match != null) {
end += match[0].length;
console.log(match);
continue;
}
match = endpat.exec(sub);
if(match != null) {
console.log("Found end at " + end);
break;
}
end++;
}
console.log(str.substring(start,end));