none
请教一个分割字符串的问题 RRS feed

  • 问题

  • 以5678开头并以abcd结束的字符串的分割问题

    56780000hfaihfaabcd,可以分割为0000hfaihfa

    但是如果5678前面有字符且不是abcd的就不分割,该如何做呢?

    如56781335678dsfadfabcd,就分割为1335678dsfadf,而不是分割为133和dsfadf

    请教一个最快的算法。

    2013年3月21日 14:33

答案

  • var m = System.Text.RegularExpressions.Regex.Split("56781335678dsfadfabcd", "5678(.*)abcd", System.Text.RegularExpressions.RegexOptions.IgnoreCase | System.Text.RegularExpressions.RegexOptions.Singleline);
                if (m[0] == "")
                {
                    //ok
                    Console.WriteLine(m[1]);
                }

    希望可以帮助你


    爱吃西瓜的小强[mct、mcpd]

    • 已建议为答案 Kangqiang Hua 2013年3月22日 7:25
    • 已标记为答案 Ken767 2013年3月22日 9:03
    2013年3月22日 7:25

全部回复

  • var m = System.Text.RegularExpressions.Regex.Split("56781335678dsfadfabcd", "5678(.*)abcd", System.Text.RegularExpressions.RegexOptions.IgnoreCase | System.Text.RegularExpressions.RegexOptions.Singleline);
                if (m[0] == "")
                {
                    //ok
                    Console.WriteLine(m[1]);
                }

    希望可以帮助你


    爱吃西瓜的小强[mct、mcpd]

    • 已建议为答案 Kangqiang Hua 2013年3月22日 7:25
    • 已标记为答案 Ken767 2013年3月22日 9:03
    2013年3月22日 7:25
  • string s = "56781335678dsfadfabcd";
         
            int startIndex = s.IndexOf("5678"+ 4;
            int endIndex = s.LastIndexOf("abcd");
            System.Console.WriteLine(s.Substring(startIndexendIndex - startIndex));

    If you think one reply solves your problem, please mark it as An Answer, if you think someone's reply helps you, please mark it as a Proposed Answer

    Help by clicking:
    Click here to donate your rice to the poor
    Click to Donate
    Click to feed Dogs & Cats

    2013年3月22日 8:39
    版主