2011-07-20 34 views
1

我有$ a = 5816.3.big.jpg;簡單pregmatch

我想先看到$ a中的所有符號。「

什麼pregmatch可以做到這一點?你可以幫我嗎?

回答

3

是這樣的嗎?

$a = "5816.3.big.jpg" 
$a.split(".")[0] 
5816 

對不起。你想要正則表達式。

$a = "5816.3.big.jpg" 
[regex]::matches($a,"^([^\.]+)\.")[0].groups[1].value 
5816 

或者:

$a = "5816.3.big.jpg" 
[void]($a -match "^([^\.]+)\.") 
$matches[1] 
5816 
+0

看起來不錯,但在PowerShell中不起作用。我不知道拆分的正確語法。我有一些代碼:'$ files = Get-ChildItem -Path。\ 123; foreach($文件在$ files中) { $ a = $ file.name; $ a -split「[。]」; echo $ a; } a的結果是4個單詞,如何與第一個工作? – butteff

+0

非常感謝你 – butteff

+0

這就是陣列切片所做的。拆分給你和數組。 [0]爲您提供該數組的第一個元素。試試這個:$ files = Get-ChildItem -Path。\ 123; foreach($文件中的$ files){($ file.name).split(「。」)[0]} – mjolinor

1

這裏的另一種選擇:

PS > "5816.3.big.jpg" -replace '\..+$' 
5816 

PS > Get-ChildItem -Path .\123 | Foreach-Object { $_.Name -replace '\..+$' }