Regex to match a string after colon

后端 未结 4 1820
长情又很酷
长情又很酷 2020-12-03 12:36

Input string is something like this: OU=TEST:This001. We need extra \"This001\". Best in C#.

4条回答
  •  盖世英雄少女心
    2020-12-03 13:13

    A solution without regex:

    var str = "OU=TEST:This00:1";
    var result = str.Split(new char[] { ':' }, 2)[1];
    
    // result == This00:1
    

    Regex vs Split vs IndexOf

    Split

    var str = "OU=TEST:This00:1";
    
    var sw = new Stopwatch();
    
    sw.Start();
    var result = str.Split(new char[] { ':' }, 2)[1];
    sw.Stop();
    
    // sw.ElapsedTicks == 15
    

    Regex

    var str = "OU=TEST:This00:1";
    
    var sw = new Stopwatch();
    
    sw.Start();
    var result = (new Regex(":(.*)", RegexOptions.Compiled)).Match(str).Groups[1];
    sw.Stop();
    
    // sw.ElapsedTicks == 7000 (Compiled)
    

    IndexOf

    var str = "OU=TEST:This00:1";
    
    var sw = new Stopwatch();
    
    sw.Start();
    var result = str.Substring(str.IndexOf(":") + 1);
    sw.Stop();
    
    // sw.ElapsedTicks == 40
    

    Winner: Split

    Links

    • Split
    • IndexOf
    • Regex

提交回复
热议问题