想得到连续六个字母的开始位置
如: 2 bcx ABCXYZ xxx    3 c 6 XYZABC YYY 256得到 ABCXYZ以及XYZABC的起始位置.应该怎么写.

解决方案 »

  1.   

    可以先用正则表达式捕获组得到6个连续的字母的内容,然后用indexOf获得起始位置。方法比较傻,等待楼下更好解法……
      

  2.   


    不需要正则,直接采用indexof就行了 string d = "2 bcx ABCXYZ xxx ";
            Response.Write(d.IndexOf("ABCXYZ").ToString());
            Response.Write((d.IndexOf("ABCXYZ")+"ABCXYZ".Length).ToString());
      

  3.   


    ABCXYZ是事先不知道的.他只是六位字母组合.有很多.有可能是CCCYYY
      

  4.   

    /* 
     * 想得到连续六个字母的开始位置 
     * 如: 2 bcx ABCXYZ xxx
     * 3 c 6 XYZABC YYY 256
     * 得到 ABCXYZ以及XYZABC的起始位置.应该怎么写.
    */string[] str = new string[] { "2 bcx ABCXYZ xxx", "3 c 6 XYZABC YYY 256" };           
    foreach (string b in str)
    {              
        Console.WriteLine(b.IndexOf(Regex.Match(b, @"[a-z]{6}", RegexOptions.IgnoreCase).Value).ToString());
    }
    /*
    6
    6
    请按任意键继续. . .
    */
      

  5.   

    protected void Button1_Click ( object sender, EventArgs e )
        {
            string source = "2 bcx ABCXYZ xxx";
            string pattern = @"[a-zA-Z]{6}";
            System.Text.RegularExpressions.Match match 
                = System.Text.RegularExpressions.Regex.Match ( source, pattern );
            int result = match.Index;
        }
      

  6.   

    string str="bcx ABCXYZ xxx";
    strint strRegex="\\s[A-Za-z]{6}\\s";
    Regex regex = new Regex(strRegex, RegexOptions.IgnoreCase);
    MatchCollection ImgColl = regex.Matches(strSoure);
    foreach (Match ImgMatch in ImgColl)
    {
    string ss=ImgMatch.Value;
    }
      

  7.   

    呵呵,文本的.lenght.如果=6就要呗,还怎样?