JSFiddle - React, Tailwind, and code Playground
HTML
Or <a href="https://tio.run/##nVRhSxtBEP1cf8UYhCbGRqVQCjGIaD4IVkoL7Rchbu4mcdq93XN3Ni2Ivz19d5eribWt7Zfkjp333rw3c/vFLEzMgpT6avF2ucy8i0rxxged6HelEV07U/Co82H8/uLkdDw5mLwbd66HW02h9W7e1l34wAVJGVNBubc@UBQlgHWPqmrOlDUFMrmUEjNxc2IrOIycA0AsKRY@J@WiBFhcJrnkySklCJkp6Im1oWYqzNwZMlZukxnQ2Yben@QoTxJJg0QFlCl6ayUTTbm4AZ1kBAzqiecc1UTocMYOD@WNCawBYpfeUZnsQpwJ5LhisQY9QTimWLLLJUaGAeWQp2JAH9u@CqMK7kWyZVKj8OME5@Mq8rZmZjKxEiWuLLKKQc35im3Dm5UpB0@SA5UymaZITqIlrcNDdOBe@Wj9zAKSEGtNZSiytcC04AGdejRfsFMIWTTixNBtFdiCLUEqIn7HGZkMrsxcGjuiph6NZd/Ei4HlddeXqE0QKzIfSg60c7e2W/eNYYyi6rsuq9pE059kwSEY8iETiq0OJ1p4m7Q0upapNh6yAHPrs0ayQKCQ0bCiArWOVw@FsRyTyQ28FwzgL3PHUqL95LJmx4CZImxXTaCmfhjTPJiF5NiL01DjisooElXfbkcTULXXUMe@Fvh@ZqBWwSZZ77@a4JPLuwilR3dbL0I1XEd4HQQuMQfu7nePj0bNl3j1rd@7yvvd4xGeOr39PXq5fTn@PDk/237ZG27dP1DPQVvWrL8jHew@cHZBih9wDnYr1s7OYcu787pTM1e75y0PFDvS7TSTrEWq45kPXYucBJfBwZDk6JDf4K/fh6dVKz9n3xvSJtsY9h8TPqX2kNZfJdeCfZbuJvUj9fqi@xer7c34tOIm3RNS/@fzGaKbxMvlDw">Try it Online</a>
JavaScript
const short_txt = `name="REPLACE_0_ME"`;
const long_txt = `Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Dolor sit amet consectetur adipiscing elit duis tristique sollicitudin. Ac turpis egestas maecenas pharetra. Non pulvinar neque laoreet suspendisse interdum. Sit amet mattis vulputate enim. Est sit amet facilisis magna etiam. Interdum consectetur libero id faucibus nisl tincidunt. Egestas egestas fringilla phasellus faucibus. Condimentum lacinia quis vel eros donec ac. Sagittis vitae et leo duis ut diam. Nec ullamcorper ${ short_txt } amet risus nullam eget. Viverra orci sagittis eu volutpat. Sit amet tellus cras adipiscing enim eu. Senectus et netus et malesuada fames ac turpis egestas sed. Nunc aliquet bibendum enim facilisis gravida. Cras semper auctor neque vitae tempus quam`;
function lookaround(txt) {
return txt.replace(/(?<=name="\w+)\d+(?=\w+")/, '!NEW_ID!');
}
function group(txt){
return txt.replace(/(.*name="\w+)(\d+)(\w+".*)/, "$1!NEW_ID!$3");
}
console.time("short_group");
for(let i = 0; i<1e6; i++) { group(short_txt); }
console.timeEnd("short_group"); // ~ 1123
console.time("short_lookaround");
for(let i = 0; i<1e6; i++) { lookaround(short_txt); }
console.timeEnd("short_lookaround");
console.time("long_group");
for(let i = 0; i<1e6; i++) { group(long_txt); }
console.timeEnd("long_group");
console.time("long_lookaround");
for(let i = 0; i<1e6; i++) { lookaround(long_txt); }
console.timeEnd("long_lookaround");