using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"(//[^\n]+)|(/\*.*?\*/)";
string input = @"#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";
foreach (Match m in Regex.Matches(input, pattern))
{
Console.WriteLine("'{0}' found at index {1}.", m.Value, m.Index);
}
}
}
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 C#, please visit: https://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex(v=vs.110).aspx