c#正则表达式硬盘问题

本文关键字:问题 硬盘 正则表达式 | 更新日期: 2023-09-27 18:07:40

我试图有一个正则表达式的情况下,如果用户选择了一个硬盘驱动器(例如:"C: '")。
我试过:

Match reg = Regex.Match(location, @"/[A-Z][:]['']/");

:

Match reg = Regex.Match(location, "/[A-Z][:]['']/");

第一行没有检测到,第二行以一个异常结束:System。ArgumentException

c#正则表达式硬盘问题

假设,您想要检查字符串是否完全类似于C:',而不是ABC:'' and my dog。您需要锚^$:

^[A-Z]:''$

在代码中:

foundMatch = Regex.IsMatch(yourstring, @"^[A-Z]:''$");

请注意,我已经删除了[:]['']中的括号(没有必要,因为在每种情况下,我们都匹配单个文字字符,而不是来自几个可能字符的类中的一个字符)。

从模式中删除开头和结尾的/字符;它们不是。net正则表达式语法的一部分。

这比你想象的简单多了。你只需要:

Match reg = Regex.Match(location, @"^[A-Z]:''$");
  • @"..."语法是一个逐字字符串,它简化了正则表达式(和路径)。
  • ^只会在字符串
  • 的开头强制匹配成功。
  • [A-Z]是你的,匹配驱动器号。
  • :''是文字字符:',加上反斜杠,因此regex不会试图对其进行特殊处理。
  • $只会在字符串
  • 的末尾强制匹配成功。

因此^和$强制它匹配整个输入字符串,而不是可能匹配中间的字符串。