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);