您的位置:首页 > 编程语言 > C#

c# - 正则表达式 Regex 判断是否是Share路径或硬盘路径

2012-11-30 13:37 991 查看
没有找到合适的匹配 一个UNC路径(\\MachineName\Folder\SubFolder\) 或者硬盘路径的正则表达式,所以自己写了一个.

有问题的话欢迎提意见.

正则表达式:^\s*([a-zA-Z]:\\|\\\\)([^\^\/:*?"<>|]+\\)*([^\^\/:*?"<>|]+)$

第一个字符^匹配字符串的开始, 最后一个字符$匹配字符串之结束。

\s* 匹配0个或者多个空格

[a-zA-Z]: 匹配一个字母和一个冒号

\\: 正则表达式里\是关键字符, 需要用\\ 表示 \, 所以匹配为一个\和一个冒号。同理 \\\\: 匹配两个\和一个冒号。

[^\^\/:*?"<>|]+  一个或者多个不是^\/:*?"<>|的字符,

后面同理。

注意:在c#中使用的时候, 定义正则表达式的字符串需要把双引号" 用""替代.

using System;
using System.Text.RegularExpressions;

namespace pathregextest
{
class Program
{
static void Main(string[] args)
{
string regexPattern = @"^\s*([a-zA-Z]:\\|\\\\)([^\^\/:*?""<>|]+\\)*([^\^\/:*?""<>|]+)$";
Regex regex = new Regex(regexPattern);
string[] strs = new string[] { @"\\v-yuxuac\tools\Download",
@" \\v-yuxuac\tools\Download\ ",
@"c:\tools\pic\",
@"c:\tools\pic",
@"\\fsa'ahre\saffdsa\gfds",
@"dsd:\fdsa\er",
@"\\c\fdsagre",
@"c:\tools\p^c"};
foreach (string str in strs)
{
Console.WriteLine(str + " : " + regex.IsMatch(str));
}

Console.ReadLine();
}
}
}


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: