oiu1010110
白日梦想jun
采纳率58.7%
2018-04-03 03:00 阅读 2.4k

C#中 reg.Match() 方法返回的值

5
              string oriArea = "四川大学中心222";
            Regex regex = new Regex("^(.*)[中心|会场]");
            System.Console.WriteLine(regex.Match(oriArea));
            System.Console.WriteLine(regex.Match(oriArea).Groups[1].Value);

1.我想获取的是oriArea中中心或者是会场之前的数据,但是regex.Match(oriArea)最后得到的是包括中心的,不是应该只是前面不包含中心或会场的元组的内容吗?
2.Groups[1].Value为什么是 四川大学中 呢?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

6条回答 默认 最新

  • 已采纳
    qiuzhihzy123 qiuzhihzy123 2018-04-03 03:44
            string str = "四川大学中心asd";
            string put = str.IndexOf("中心")>=0 ? str.Remove(str.IndexOf("中心"), str.Length - str.IndexOf("中心")) : str.Remove(str.IndexOf("会场"), str.Length - str.IndexOf("会场"));
    
    点赞 评论 复制链接分享
  • showbo GoCityPass新加坡曼谷通票 2018-04-03 03:25

    要匹配词组用使用(。。|。。。|。。)格式,而不是[]

     ^(.*)(中心|会场)
    
    点赞 1 评论 复制链接分享
  • u011606457 _1_1_7_ 2018-04-03 03:10
     "^(.*)[(中心)|(会场)]"  
    

    中心和 会场 也要放在 组里,不然就解析为单个字符

    点赞 评论 复制链接分享
  • SecretGarden SecretGarden 2018-04-03 03:24

    ^(.*)(中心|会场)

    点赞 评论 复制链接分享
  • u011478264 AuGu1 2018-04-03 03:33

    第一个问题:

     Regex regex = new Regex("^(.*)[中心|会场]"); 
    

    这里面有[中心|会场]匹配出来的肯定是包括中心或会场的,你可以考虑去掉[中心|会场]试试

    第二个问题:
    你这个字符串加上匹配到的后面的数据,该从0开始

    点赞 评论 复制链接分享
  • u013669614 CH3COOOH 2018-04-03 05:46

    1.建议直接截取子字符串,用正则当然也行,但是效率会低一些

    点赞 评论 复制链接分享

相关推荐