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 \
。
我错过了什么?
答案 0 :(得分:1)
您需要做的就是分别使用^
和$
将正则表达式绑定到行的开头和结尾:
^([a-zA-Z]+:)?(\\[a-zA-Z0-9_.-: :]+)*\\?$
几乎在您尝试计算正则表达式中特定数量的字符时,这几乎是必要的。