const regex = new RegExp('(//[^\\n]+)|(/\\*.*?\\*/)', 'g')
const str = `#define MC2
#define MC1
# ifndef MCTEST
#define MCTEST
#ifdef MC1
#define data1 0x20
/*cmment start*/#define /*this is comment*/ data2 2.5f
#define date3 L"this is a data"
#define data4 true
#ifdef MC2
#define data5 'a'
#define data6 { {2.0, "abc"}, {1.5, "def"}, {5.6f, "7.2"}} // ¸¡µãÓë×Ö·û´®×é³ÉµÄ½á¹¹Ìå³õʼ»¯¾ÛºÏ£¬ ÔÙ½øÒ»²½¾ÛºÏ×é³ÉÁËÊý×é
#else //else MC2
# define data5 {5.0, 7.5, 3.8}
#define data6 'c'
#endif //end MC2
#ifdef MC3
//¼ÙifǶÌ×£¬ÓÃÓÚ²âÊÔ£¬ÔÚÓ¦¸Ã±»ºöÂÔµÄÇé¿öÏ£¬#endifµÄ¼æÈÝÇé¿ö
#endif //end MC3
#else//else MC1
"//ccc"
"/*bbb*/"
"/**/"
//"//bbb"
/*"jjjjj"*/
#define data1 1.0f /* this is float
may be changed
*/
#define data2 2
#define date3 false
#define data4 "this is a data"
#ifdef MC2
#define data5 'B'
#define data6 {1, 6, 3}
#define data7 0xa
#else//else MC2
#define data5 'D'
#define data6 {1, 6}
#endif //end MC2
#endif //MC1
#ifdef MC2
#undef MC2
#endif
/*ÔÚ¶àÐÐ×¢ÊͺóÃæ½ô¸úÒ»¸öµ¥ÐÐ×¢ÊÍ*///½ô¸úµÄµ¥ÐÐ×¢ÊÍ
#endif // !MC_TEST`;
// 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