比如:37_00195d24c9d6_20110127195405  或者: 123jjj_jdsklajldsj432432432:432432:432_jflajjflsa213

解决方案 »

  1.   

    string[] list=XX.Split('_') 妥妥的 - -
      

  2.   

    都不对,看清楚问题,是两个下划线之间的字符串!substring只是取从多少位开始然后取多少个字符,显然不行!Split根本就没有这个方法^
      

  3.   

    string result = Regex.Match(yourStr,@"(?<=_)[^_]+(?=_)").Value;
      

  4.   

     string a = "123jjj_jdsklajldsj432432432:432432:432_jflajjflsa213";
                string[] b = a.Split('_');
                MessageBox.Show(b[1]);
      

  5.   

    这样看看行不行,呵呵
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;namespace csdn_1
    {
        class Program
        {
            static void Main(string[] args)
            {
                string s1 = "123jjj_jdsklajldsj432432432:432432:432_jflajjflsa213";//待处理字符串
                string[] arr = s1.Split(new char[] { '_' },StringSplitOptions.RemoveEmptyEntries);//按照‘-分割并去除空
                for (int i = 0; i < arr.Length; i++)
                {
                    Console.WriteLine("第" + (i + 1).ToString() + "个" + arr[i]);
                }
                Console.Read();
               
            }
        }
    }
    输出结果
    第1个123jjj
    第2个jdsklajldsj432432432:432432:432
    第3个jflajjflsa213
      

  6.   

    string str="sdfds_gsfsdfsd_sdfdsfsd";
    str.Substring(str.IndexOf("_") + 1, str.LastIndexOf("_") - str.IndexOf("_")-1)
    虽然可以实现你说的情况。但是这个只能实现字符串中只出现两个"_".如果多个的话,只能读第一个到最后一个的值.
      

  7.   

      substring  从下标几开始到某某结束
      

  8.   

    string[] arr=str.Split(new char[]{'_'})
    arr[1];
    否则正则
      

  9.   

    37_00195d24c9d6_20110127195405 或者: 123jjj_jdsklajldsj432432432:432432:432_jflajjflsa213千万别告诉我,你只是想取7 0,6 2: j j,2 j
     _之间的字符串,指的是这个?
    如果要这个值,只能用substring,绝对可以,看你写的算法了
    至于正则,貌似强人已经给出了,最不懂的东西 - -
      

  10.   

    他的格式不是固定的,有可能字符串多,有可能少,所以用substring不行!
      

  11.   

    string str="sdfds_gsfsdfsd_sdfdsfsd";
    str.Substring(0, str.LastIndexOf("_") - str.IndexOf("_")-1)
      

  12.   

    string str="sdfds_gsfsdfsd_sdfdsfsd";
    str.Substring(0, str.LastIndexOf("_")1)
      

  13.   

    var s = "37_00195d24c9d6_20110127195405" s =  s.Substring(s.LastIndexOf("_") + 1);
      

  14.   

    楼主 你有没有搞错哦?!!!String的方法,你都看完了么?!!!第一种使用SubString:        static string GetSubString(string strOrignal, char a)
            {
                int start = strOrignal.IndexOf(a);//你的第一个‘_’的索引
                int end = strOrignal.LastIndexOf(a);//你的最后一个‘_’的索引
                return strOrignal.Substring(start, end - start);//这个从start开始,长度为end-start
            }第二种使用Split:        static string GetSplitString(string strOrignal,char a)
            {
                return strOrignal.Split(a)[1];//因为你有两个'_',所以使用Split得到的是3个数组,你需要的是第二个数组
            }        static void Main(string[] args)
            {
                //1使用SubString方式的
                GetSubString("37_00195d24c9d6_20110127195405", '_');
                //2使用Split方式的        }
      

  15.   

     static void Main(string[] args)
            {
                //1使用SubString方式的
                Console.WriteLine( GetSubString("37_00195d24c9d6_20110127195405", '_'));
                //2使用Split方式的
                Console.WriteLine( GetSplitString("37_00195d24c9d6_20110127195405", '_'));
                Console.Read();
               
            }        
            static string GetSubString(string strOrignal, char a)
            {
                int start = strOrignal.IndexOf(a);//你的第一个‘_’的索引
                int end = strOrignal.LastIndexOf(a);//你的最后一个‘_’的索引
                return strOrignal.Substring(start+1, end - start);//这个从start开始,长度为end-start
            }        static string GetSplitString(string strOrignal,char a)
            {
                return strOrignal.Split(a)[1];//因为你有两个'_',所以使用Split得到的是3个数组,你需要的是第二个数组
            }
      

  16.   

    string str="AAA_BBB_CCC";
    取“BBB”的方法:
    str.Substring(str.IndexOf("_")+1, str.LastIndexOf("_") - str.IndexOf("_")-1)
    取“AAA_BBB”的方法
    str.Substring(0, str.LastIndexOf("_") - str.IndexOf("_")-1)
      

  17.   

    取出最后一个下划线之前全部的字符!string str = "37_00195d24c9d6_20110127195405";
    string ss = str.Substring(0, str.LastIndexOf("_"));
    ss结果:37_00195d24c9d6,你的意思就是这个吧?
    真不懂和标题完全不搭边,如果还不对,请楼下的理解达人解决问题
      

  18.   

    少的话可以用最古老的方法:如下
    function a()
    {
    var a=window.document.getElementById("t").value;
    var b=a.substring(5,8);
    alert(b);
    }
    只取第一个和最后一个下划线之间的,不计较中间有多少个下划线的话可以用下面这个:
    string str="sdfds_gsfsdfsd_sdfdsfsd";
    str.Substring(str.IndexOf("_") + 1, str.LastIndexOf("_") - str.IndexOf("_")-1)
    试试看!
      

  19.   


    //取第一个‘_’到最后一个‘_’之间
                string s1 = System.Text.RegularExpressions.Regex.Match(str, "(?<=_).*(?=_)").Value;
                //取第一个字符到最后一个‘_’之间
                string s2 = System.Text.RegularExpressions.Regex.Match(str, "^.*(?=_)").Value;