如果我有这个:
2.2.3.140113
并执行此操作:
$([System.Text.RegularExpressions.Regex]::Replace( $(str), '^(\d+)\.(.+)$', '$1_$2' ) )">
我会得到这个:
2_2.3.140113
我想要的是它应该是
2_2.3
如何删除最后一部分?
答案 0 :(得分:2)
将正则表达式更改为:
^(\d+)\.(.+)\.\d+$
答案 1 :(得分:1)
尝试使用以下正则表达式:
^(\d+)\.(.+)(\.\d+)$
它将创建您将忽略的第三组,所以:
$([System.Text.RegularExpressions.Regex]::Replace( $(str), '^(\d+)\.(.+)(\.\d+)$', '$1_$2' ) )">
答案 2 :(得分:1)
所以你不应该抓住其余部分:
$([System.Text.RegularExpressions.Regex]::Replace( $(str), '^(\d+)\.(.+?\..+?)\..*', '$1_$2' ) )">
更新:
没有必要使用$
,因为你的正则表达式包括最后的所有字符
答案 3 :(得分:1)
您可以使用此代码:
$([System.Text.RegularExpressions.Regex]::Replace( $(str), '^(\d+)\.(\d+)\.(\d+)\.(\d+)$', '$1_$2.$3' ) )">
答案 4 :(得分:1)
^(\d+)\.(\d+\.\d+).*
替换为:
$1_$2
答案 5 :(得分:0)
不确定这是否是您要做的事情,但如果您想在最后一个号码之前完成所有数字,您可以这样做:
(\d+)(?=\.)
这将捕获所有后跟点(。)
的数字组