const regex = new RegExp('.*(hello.+you).*', 'gmi')
const str = `aaaHello will get match with the last you, you see?
Also this hello won't get selected, but the last one will, hello you!
Here this hello you combo won't get selected, but the last will, hello, you see?
Btw, you might wondering why do you see blue on everything, welp, that's all I can do, if theres no he-llo you combination it won't match, otherwise it matches everything as group 0, and the word you need as group 1. (so yea just take data group 1 and it's gud)`;
// Reset `lastIndex` if this regex is defined globally
// regex.lastIndex = 0;
let m;
while ((m = regex.exec(str)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}
// The result can be accessed through the `m`-variable.
m.forEach((match, groupIndex) => {
console.log(`Found match, group ${groupIndex}: ${match}`);
});
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for JavaScript, please visit: https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions