JSFiddle - React, Tailwind, and code Playground
by lovinglobo
HTML
<b>find:</b><br/>
<textarea id="find" cols=50 rows=4></textarea>
<br/>
<b>replace:</b><br/>
<textarea id="replace" cols=50 rows=4></textarea>
<br/>
<b>match text:</b><pre>
rule
1 /* foobar */
end
rule
1 /*foobar*/
end
rule
bonus
// bla
points
end
rule
1
/* bye world */
2
end
rule
1
/*foobar*/ 2
/*byebar*/ etc.
end
</pre>
JavaScript
// with a count higher than 29 Notepad++ v6.2.3
// fails with an 'invalid regular expression' message
var count = 29;
var replace = "";
var find = '^rule((?:.|\\r|\\n)*?)(?:^end|(?:(?://.*?$|/\\*(?:(?:[^*]|\\*(?!/))*)\\*/)';
var findEnd = '))';
for (var i = 0; i < count; i++) {
find += '((?:.|\\r|\\n)*?)(?:^end|(?:(?://.*?$|/\\*(?:(?:[^*]|\\*(?!/))*)\\*/)';
findEnd += '))';
replace += '$'+(i+1);
}
find += '(?:\\n\\r?^end)';
$("#find").val(find + findEnd);
$("#replace").val(replace);