繁体   English   中英

有效的正则表达式字符串

[英]valid regular regular expression string

嗨,我有一个正则表达式,现在失败了。 不知道停止了什么。

Regex regex = new Regex(@"^(([a-zA-Z]:)|(\\{2}\w+\\[\w- ]+[$])|(\\{2}\w+))(\\[\w-. ]*)*(.xml|.XML)$");

if (!regex.IsMatch(fuSource.PostedFile.FileName))
{
      Page.Validators.Add(new ValidatorHelper("Please select a valid Application XML input file."));
}

我传递的文件名是:

XX2 03-01-2017.xml

但由于某种原因,它没有采取。

请提供与模式匹配的有效文件名。

您可以在这样的在线工具上测试您的正则表达式以自己尝试:
https://regex101.com/r/UX9TjE/1

基本上,您的regexp匹配文件名中的3个部分:

  • 前缀:可以是三件事
    • 类似Windows的驱动器名称: c:Z:
    • Windows共享驱动器,其参数为: \\\\shared\\user$
    • Windows共享驱动器: \\\\shared
  • 名称(注意:它可以为空,即零长度):
    • 它使用反斜杠包含文件的路径,并且可以包含空格:
    • \\my\\path\\my file
  • 扩展名: .xml.XML

恕我直言,这个正则表达式不是很好,这是一些示例匹配:

c:\path\\XX2 03-01-2017.xml

\\nas\user$\XX2 03-01-2017.xml

\\network_shared\.xml

\\a.XML

您可以在此处查看每个匹配的原因:
https://regex101.com/r/UX9TjE/2

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM