我有一个包含多个网络路径位置的字符串。它可能是2,3或任何数字。我想分解成多个路径。我使用正则表达式,但我没有得到期望的结果。包含多个网络路径的拆分字符串
string samplePath = "\\Computer1\Folder\Folder \\Computer2\Folder\New Folder \\Computer\New Folder"
我不能使用空格作为DELIM字符作为文件夹名称可以包含空格的分裂这一点。 这里是我正在使用的正则表达式来获得我想要的结果。
var pattern = @"^\\{2}[\w-]+(\\{1}(([\w-][\w-\s]*[\w-]+[$$]?)|([\w-][$$]?$)))+";
var matches = Regex.Matches(samplePath, pattern, RegexOptions.IgnoreCase);
foreach (var match in matches)
myCollectionList.Add(match.ToString());
之后会发生什么,我得到只有一个结果(第一路径)。匹配数是1.问题在哪里。
为什么要使用正则表达式?为什么不按空间分割?或者通过“\\”来解决这个问题?它在运行时也会更快。 – 2013-03-12 08:20:47
请注意,多个反斜杠在路径中有效:C:\ path1 \\ path2 \\\ filename.txt等同于c:\ path1 \ path2 \ filename.txt。当错误地连接路径时会发生这种情况。 – Jonathan 2013-03-12 08:23:21