正则表达式匹配PowerShell驱动器路径

时间:2016-12-01 19:54:54

标签: regex powershell

PowerShell的New-PsDrive Cmdlet允许使用更灵活的名称创建驱动器,例如HKLM

我想在我正在构建的NavigationCmdletProvider中匹配这些驱动器\路径\文件模式:

csb:
csb:\
csb:\foo\bar
csb:\foo\bar\
csb:\foo\bar bar\test.txt

但不是这些

csb:\\
csb:\\\

([a-zA-Z]+:)?(\\[a-zA-Z0-9_.-: :]+)*\\?匹配我想要的所有内容,但仍包括我不想要的两个内容。我似乎无法在字符串的末尾匹配0或1 \

我错过了什么?

1 个答案:

答案 0 :(得分:1)

您需要做的就是分别使用^$将正则表达式绑定到行的开头和结尾:

^([a-zA-Z]+:)?(\\[a-zA-Z0-9_.-: :]+)*\\?$

几乎在您尝试计算正则表达式中特定数量的字符时,这几乎是必要的。