【发布时间】:2017-11-09 01:19:59
【问题描述】:
所以我现在(如下)将搜索XX-##-# 并将其强制为XX-##-#0000。
我怎样才能返回XX-##-0000#?
有没有办法强制最后 5 位数字填充前面的 0,以覆盖其他可能性(XX-##-##、XX-##-###、XX-##-####)?与复制 4 次相反,每次稍作调整。
$Pattern1 = '[a-zA-Z][a-zA-Z]-[0-9][0-9]-[0-9]'
Get-ChildItem 'C:\path\to\file\*.txt' -Recurse | ForEach {
(Get-Content $_ |
ForEach { $_ -replace $Pattern1, ('$1'+'0000')}) |
Set-Content $_
}
谢谢。
编辑:我想做以下事情
Search Replacement
XX-##-# XX-##-0000#
XX-##-## XX-##-000##
XX-##-### XX-##-00###
XX-##-#### XX-##-0####
【问题讨论】:
-
$Pattern1或$date_Pattern1?您的$Pattern1不包含捕获组,您使用$1引用了一些组 - 请显示您的所有代码。 -
@WiktorStribiżew 我的错,它应该是 $Pattern1,我修好了.. $1 是一个反向引用
-
是的,对捕获组值的反向引用。您的正则表达式没有捕获组。
-
@WiktorStribiżew 哦..我必须跳入工作中的其他事情,但我想我明白我现在缺少什么..我会再试一次..谢谢
-
我可能太忙了,这里是an approach you may pursue。
标签: regex powershell text return-value