I need it to select only value which has :this in line but not include which are under comment section (/* */)
I have tried this one which works and give 3 results but it is incorrect as it select the last one which is in comment
const str = `
:this {
display: grid;
}
p { color: red}
:this { this is also okay to capture }
/* but do not capture this :this { } , so how to look far behind here */
`;
const pattren = '(?<=:)\\bthis\\b\\s*(?={)';
const rx = new RegExp(pattren, 'gmd');
const matches = str.matchAll(rx);
console.log([...matches]);
Trial 1:
look far behind that is there * in the same line but it does not work and gives 0 result
const pattern = '(?<!/*)(?<=:)\\bthis\\b\\s*(?={)';
You can use
(?<!/\*.*)to look for/*followed by zero or more characters.