const regex = /[^\n.!?]*((sorry)\b[^.!?:\n\r]+\b((bad|my|poor) english)|(english[^.!?:\n\r]+)\b(tongue|language))\b[^.!?:\n\r]*(?:[.!?:_*])*/gi;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('[^\\n.!?]*((sorry)\\b[^.!?:\\n\\r]+\\b((bad|my|poor) english)|(english[^.!?:\\n\\r]+)\\b(tongue|language))\\b[^.!?:\\n\\r]*(?:[.!?:_*])*', 'gi')
const str = `About 30,500 instances of "sorry bad english". Once a post has been properly edited, this phrase is just noise, and should be deleted.
Some words. sorry for bad english. More text.
Sorry about my bad english. More text.
I'm sorry my english sucks. More text.
Sorry for my bad English . More text.
sorry for my bad english, _i explained it with everything i can._ More text.
Blah de blah de blah. ***And sorry for my bad english..***
Sorry for my English. More text.
Sorry for my english and thanks! More text.
I'm sorry for my poor english . More text.
And sorry for my english. More text.
## WBN
And sorry if my english got a little confusing...
pss: sorry, bad english
sorry, english isn't my main language =/.
English isn't my first language,
English isn't my native language.
English isn't my mother language.
As english isn't my mother tongue,
I don't know if I made myself clear as english isn't my native language,
English isn't my primary language,so
My English isn't mother tongue,
I hope u understand me, english isn't my mother tongue.
I'm sorry for my grammar or spelling mistakes,
First, sorry if my english isn't that great, this isn't my mother tongue.
Sorry for the bad English, English isn't my mother tongue so I'm trying to make the best of it.
Sorry for my bad English, it is not my native tongue
## Leave:
It is a sorry excuse for it.
He put some English on the ball.
`;
// 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