package main
import (
"regexp"
"fmt"
)
func main() {
var re = regexp.MustCompile(`(//[^\n]+)|(/\*.*?\*/)`)
var 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`
for i, match := range re.FindAllString(str, -1) {
fmt.Println(match, "found at index", i)
}
}
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 Golang, please visit: https://golang.org/pkg/regexp/