关于正则表达式的问题(100分)
写一个方法,有两个参数,第一个参数content   是一个字符串,   第二参数是一个array,   字符串数组,存放的是一些关键字,方法最后返回一个string.   
 如果 
 content= "I   am   a   boy   ,   they   boys   . "; 
 arrStr={ "boy ",    "boys ",    "female ",    "gender "}   
 使用正则表达式,要返回content包含的关键字(就是arrStr里面出现的)   格式是   return    "boy,boys "; 
 如何实现? 
------解决方案--------------------与搜索有关吧? 
 参考Lucene的实现原理吧   
 简单的话就indexOf吧 
------解决方案--------------------正则不会,这样也可以解决: 
    protected string Get_keyword() 
 { 
        string  content= "I am a boy , they boys . "; 
        string[] arrStr={ "boy ",  "boys ",  "female ",  "gender "};   
 string s= " "; 
 for(int i=0;i <arrStr.Length;i++) 
 { 
 if(content.Contains(arrStr[i])) 
    s+=arrStr[i]+ ", "; 
 } 
 return s;   
 }
------解决方案--------------------你是想做搜索功能   
 搜索引擎一般如此实现 
 分词  
 把文章按词划分   
 索引 
 把词用数字代替   
 查索引 
 搜索数字索引   
 把结果转换成词
------解决方案--------------------写了个正则的方法   
 private string GetContainWords(string content, string[] array) 
 { 
     StringBuilder result = new StringBuilder(); 
     StringBuilder sb = new StringBuilder( "(? <!\\w)( "); 
     foreach (string s in array) 
     { 
         sb.Append(s); 
         sb.Append( "| "); 
     }   
     string reg = sb.ToString().TrimEnd( '| ') +  ")(?!\\w) ";   
     MatchCollection mc = Regex.Matches(content, reg, RegexOptions.IgnoreCase); 
     foreach (Match m in mc) 
     { 
         result.Append(m.Value); 
         result.Append( ", "); 
     }   
     return result.ToString().TrimEnd( ', '); 
 }   
 调用 
 string content =  "I am a boy , they boys . "; 
 string[] arrStr =new string[]{  "boy ",  "boys ",  "female ",  "gender " }; 
 richTextBox2.Text = GetContainWords(content, arrStr);     
 效率上没有测,楼主可以试下