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:'
,而不是ABC:'' and my dog
。您需要锚^
和$
:
^[A-Z]:''$
在代码中:
foundMatch = Regex.IsMatch(yourstring, @"^[A-Z]:''$");
请注意,我已经删除了[:]
和['']
中的括号(没有必要,因为在每种情况下,我们都匹配单个文字字符,而不是来自几个可能字符的类中的一个字符)。
从模式中删除开头和结尾的/
字符;它们不是。net正则表达式语法的一部分。
这比你想象的简单多了。你只需要:
Match reg = Regex.Match(location, @"^[A-Z]:''$");
-
@"..."
语法是一个逐字字符串,它简化了正则表达式(和路径)。 -
^
只会在字符串 的开头强制匹配成功。 -
[A-Z]
是你的,匹配驱动器号。 -
:''
是文字字符:
和'
,加上反斜杠,因此regex不会试图对其进行特殊处理。 -
$
只会在字符串 的末尾强制匹配成功。
因此^和$强制它匹配整个输入字符串,而不是可能匹配中间的字符串。