我有一个路径列表,我需要一个匹配所有以C:\Program Files\_folder_\_folder_\etc
开头,然后有一个窗口路径可以使用的任何数量和任何类型的字符。
这是我的方法,但我想这只允许使用字母数字字符:
string pathPattern = @"C:\Program Files\_folder_\_folder_\etc[0-z]*";
if (System.Text.RegularExpressions.Regex.IsMatch(myList[n], pathPattern, System.Text.RegularExpressions.RegexOptions.IgnoreCase)
{
//some action
}
答案 0 :(得分:2)
如果C:\Program Files\_folder_\_folder_\etc
是预定义的部分。我认为您可以使用Regex
Contains
的情况下执行此操作
if(pathPattern.Contains(@"C:\Program Files\_folder_\_folder_\etc"))
{
//some action
}
编辑1:您可以在ToLower()
pathPattern
var ss = pathPattern.ToLower().Contains(@"C:\Program Files\_folder_\_folder_\etc".ToLower());
答案 1 :(得分:1)
<强> 1。如果您希望您的路径应以:
开头C:\ Program Files \
然后使用下面的代码:
if (Regex.IsMatch(code, @"[cC]{1}\:\\Program Files\\.*"))
{
\\ Do Your work
}
<强> 2。如果您希望您的路径应以:
开头c:\ Program Files_folder__folder _ \
然后使用下面的代码:
if (Regex.IsMatch(code, @"[cC]{1}\:\\Program Files\\_folder_\\_folder_\\.*"))
{
\\ Do Your work
}
说明强>
答案 2 :(得分:0)
试试这个正则表达式
^(?:[a-zA-Z]\:|\\\\[\w\.]+\\[\w.$]+)\\(?:[\w]+\\)*\w([\w.])+$
示例代码
string path = @"C:\Program Files\_folder_\_folder_\";
string pathPattern = @"^(?:[a-zA-Z]\:|\\\\[\w\.]+\\[\w.$]+)\\(?:[\w]+\\)*\w([\w.])+$"
if(System.Text.RegularExpressions.Regex.IsMatch(path, pathPattern)){
//It matches the regex
}
else
{
//it doesnot matches the regex
}
适合这些:
\\test\test$\TEST.xls
\\server\share\folder\myfile.txt
\\server\share\myfile.txt
\\123.123.123.123\share\folder\myfile.txt
c:\folder\myfile.txt
c:\folder\myfileWithoutExtension