c#使用正则,表达式是或关系,怎么获取起作用的匹配项?示例 :
string str="测试数-据文本";
Match m = Regex.Match(str,"中[\s\S]*国|数[\s\S]*据|测[\s\S]*试");
if (m.Success){
//这里匹配成功,如何返回第一个起作用的项(不是匹配值),数[\s\S]*据
}

解决方案 »

  1.   


    表达式很长很复杂的,没法拆如
    Regex Re = new Regex(@"违法|qq号|金融[\s\S]{0,2}(集团|公司)|禁止字符.....");
      

  2.   

     string str = "测试数-据文本";
                    MatchCollection mc = Regex.Matches(str, @"中[\s\S]*国|数[\s\S]*据|测[\s\S]*试");
                    Match m1 = mc[0];//根据索引找到匹配项目
                    string result = m1.Value;//测试
      

  3.   

     string str = "测试数-据文本";
    string m = Regex.Match(str, @"中[\s\S]+国|数[\s\S]+据|测[\s\S]+试").Value;
               
      

  4.   


    这里只是说明,不是3个,是N个条件昂,无法简单的if分开