2016-12-01 38 views
0

PowerShell的New-PsDrive cmdlet允許對與像HKLM更靈活的名稱創建驅動器。正則表達式匹配PowerShell驅動器路徑

我想匹配在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

所有你應該要做的使用^是配合你的正則表達式的行的開始和結束,分別$

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

這是必要的幾乎任何你想的時間來算一個正則表達式中字符的具體數量。

+1

看到它的工作[這裏](https://regex101.com/r/LIFaXi/2) –