如果我有這樣的:正則表達式除去最後一部分
2.2.3.140113
,並做到這一點:
$([System.Text.RegularExpressions.Regex]::Replace($(str), '^(\d+)\.(.+)$', '$1_$2'))">
我會得到這樣的:
2_2.3.140113
我要的是,它應該是
2_2.3
如何刪除最後一部分?
如果我有這樣的:正則表達式除去最後一部分
2.2.3.140113
,並做到這一點:
$([System.Text.RegularExpressions.Regex]::Replace($(str), '^(\d+)\.(.+)$', '$1_$2'))">
我會得到這樣的:
2_2.3.140113
我要的是,它應該是
2_2.3
如何刪除最後一部分?
試着用以下的正則表達式:
^(\d+)\.(.+)(\.\d+)$
它將創建第三組,你會忽略,所以:
$([System.Text.RegularExpressions.Regex]::Replace($(str), '^(\d+)\.(.+)(\.\d+)$', '$1_$2'))">
所以你不應該捕獲其他人:
$([System.Text.RegularExpressions.Regex]::Replace($(str), '^(\d+)\.(.+?\..+?)\..*', '$1_$2'))">
更新時間:
有沒有必要使用$
爲您正則表達式包括在末端的所有字符
你測試過了嗎? – Jerry
它似乎沒有測試正則表達式部分。有[根本沒有匹配](http://regex101.com/r/gP5jN6)! – Jerry
^(\ d +)\。(。+?\ .. +?)\。變爲2_2.3121221 – user1540911
您可以使用此代碼:
$([System.Text.RegularExpressions.Regex]::Replace($(str), '^(\d+)\.(\d+)\.(\d+)\.(\d+)$', '$1_$2.$3'))">
不當然,如果這是你想要做的,但是如果你想在最後一個數字之前做所有的數字,你可以這樣做:
(\d+)(?=\.)
這將捕獲的後面加一個點所有的組數(。)
嗯,這樣的事情不會做呢?
^(\d+)\.(\d+\.\d+).*
替換爲:
$1_$2
你有更多的樣本串? – Jerry