使用正则表达式获取每个反斜杠之间的字符串

max*_*pan 1 c# regex

我希望正则表达式组中的'\'反斜杠之间的内容.

C:\\Development\\TestEnvironment\\VIdeo\MyVideo.mp3
Run Code Online (Sandbox Code Playgroud)

jdp*_*nix 5

string path = @"C:\Development\TestEnvironment\VIdeo\MyVideo.mp3";
var split = Regex.Split(path, "\\\\");
Run Code Online (Sandbox Code Playgroud)

但...

var split = path.Split('\\');
Run Code Online (Sandbox Code Playgroud)

完成相同的结果,可能更快.

通过32次迭代,每次完成这100万次中的每一次,并获得这些结果.这些数字来自ElaspedTicks StopWatch.

Regex: 12707294.90625
Split:  3360008.8125
Run Code Online (Sandbox Code Playgroud)

显然,如果它不时地运行,这可能是一个非问题,但如果不是这样,我会强烈考虑String.Split().


l'L*_*L'l 5

如果你一意孤行上使用正则表达式:

using System;
using System.Text.RegularExpressions;

class Program
{
    static void Main()
    {
    // ... Input string.
    string input = "C:\Development\TestEnvironment\VIdeo\MyVideo.mp3";

    // ... One or more digits.
    Match m = Regex.Match(input, "(?i)(?x)\\\\([\\w\\.]+)");

    // ... Write value.
    Console.WriteLine(m.Value);
    }
}
Run Code Online (Sandbox Code Playgroud)