下面是我的代码:如何忽略读/ *注释* /的内容,但读取文件
string ckeywords = File.ReadAllText("E:\\ckeywords.csv");
string[] clines = File.ReadAllLines("E:\\cprogram\\cpro\\bubblesort.c");
string letters="";
foreach(string line in clines)
{
char[] c = line.ToCharArray();
foreach(char i in c)
{
if (i == '/' || i == '"')
{
break;
}
else
{
letters = letters + i;
}
}
}
letters = Regex.Replace(letters, @"[^a-zA-Z ]+", " ");
List<string> listofc = letters.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).ToList();
List<string> listofcsv = ckeywords.Split(new char[] { ',', '\t', '\n', ' ' }, StringSplitOptions.RemoveEmptyEntries).Select(p => p.Trim()).ToList();
List<string> Commonlist = listofcsv.Intersect(listofc).ToList();
有了这个if
条件下,我能够不理之间的单行注释的阅读内容和内容( “”)。
我需要忽略阅读多行注释的内容。我应该使用哪种情况? 假设我的.c文件有这样的注释,所以上面的代码我不知道如何开始从/ *到* /进行迭代,并忽略它们之间的内容。
/* printf(“按升序排序的列表:\ n”);
为(C = 0; C^< N; C++) 的printf( “%d \ n” 个,阵列[C]); */
http://stackoverflow.com/questions/3524317/regex-to-strip-line-comments-from-c-sharp/3524689#3524689 –
作为替代。 如果您阅读line的行,那么您可以查找start/*并删除该行的所有内容。你拉一个标志,并删除每一行,直到你读完* /。并防止删除任何东西。 –
我知道这个逻辑。我需要在csharp中的代码以更简单的方式忽略。 –