const regex = /^(?![^?\n]*\?).*good\s+answer/gm;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('^(?![^?\\n]*\\?).*good\\s+answer', 'gm')
const str = `Here are the strings I want to detect:
--------------------------------------
That a very good answer!
(Other than that, this is a really good answer and I've upvoted it.)
good answer dvdf!
dsds good answer cfds
It is a good answer, but I feel it played into the OP's hands really. You said what they wanted to hear - that they shouldn't freely share the information because it is like a child cheating on their homework. It is contrary to the spirit of this site, and I'm not sure that charging a colleague money to learn something work-based from you won't get the OP into trouble with their employer. Imagine if a doctor asked to confer with a fellow doctor in order to help a patient, and they charged each other for the information they shared. They'd be dismissed.
Here are the one I don't want to detect
-----------------------------------------
Thanks for this good answer! (I upvoted it) However, I still don't understand why I shouldn't mention that I believe whatever? What's the problem with that...
cxvd good answer? zedfs
ezdds? good answer dsf dsf
sdsd? dsfdsf? good answer!
Hi, the question is "How to tell blabla when X is my good friend", would you mind be a little more detail about how OP should do that when OP still want to be friend with both parties? Also, please take some time to read "How do I write a good answer
As a side note, here is a link to "How do I write a good answer?
Hi, this sound like a good answer to me, I just have one question though: Where you in a similar situation before where you successfully used this technic? In here it's better to back-up your answer with personal experience (here is a guide to How to write a good answer if you need it)`;
// 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