gpt4 book ai didi

regex - Powershell正则表达式用可变长度的字符串替换数字

转载 作者:行者123 更新时间:2023-12-02 23:42:17 24 4
gpt4 key购买 nike

我有以下字符串

$FileNamePattern =  'blah_{4}_{5}_blah_{4}-{2}.CSV'

我想用一串问号(n个字符长)替换大括号中的数字

作为示例,我希望它返回 'blah_????_?????_blah_????-??.CSV'
到目前为止,我已经掌握了,但是似乎无法在替换工作中获得“扩展”
[regex]::Replace($FileNamePattern,'{(\d+)}','"?"*$1')

任何帮助将不胜感激!

马修

最佳答案

您需要在回调方法中进行匹配处理:

$callback = {  param($match) "?" * [int]$match.Groups[1].Value }
$FileNamePattern = 'blah_{4}_{5}_blah_{4}-{2}.CSV'
$rex = [regex]'{(\d+)}'
$rex.Replace($FileNamePattern, $callback)

正则表达式 {(\d+)}{}匹配,并在两者之间捕获1个以上的数字。子匹配被解析为回调中的整数(请参阅 [int]$match.Groups[1].Value),然后使用 ?"?" * [int]$match.Groups[1].Value重复该次数。

enter image description here

关于regex - Powershell正则表达式用可变长度的字符串替换数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38350447/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com