我需要C#的正则表达式来返回允许的路径和文件名的匹配。
以下内容应符合:
a
(至少一个字符)xxx/bbb.aspx
(允许路径,只允许.aspx扩展名)bbb.aspx?aaa=1
(允许使用查询字符串)它不应匹配:
aaa.
aaa.gif
(仅允许.aspx扩展名)aaa.anythingelse
答案 0 :(得分:1)
试试这个:
[\w/]+(\.aspx(\?.+)?)?
答案 1 :(得分:0)
.NET具有用于处理文件路径的内置功能,包括查找文件扩展名。所以我强烈建议使用它们而不是正则表达式。以下是使用System.IO.Path.GetExtension()的可能解决方案。这是未经测试但它应该有效。
private static bool IsValid(string strFilePath)
{
//to deal with query strings such as bbb.aspx?aaa=1
if(strFilePath.Contains('?'))
strFilePath = strFilePath.Substring(0, strFilePath.IndexOf('?'));
//the list of valid extensions
string[] astrValidExtensions = { ".aspx", ".asp" };
//returns true if the extension of the file path is found in the
//list of valid extensions
return astrValidExtensions.Contains(
System.IO.Path.GetExtension(strFilePath));
}