gpt4 book ai didi

regex - 使用 PowerShells 正则表达式解析和替换多个变体

转载 作者:行者123 更新时间:2023-12-01 12:18:55 29 4
gpt4 key购买 nike

使用下面的代码解析文本文档会匹配“333”的每个实例,但我只想更改下面的三个示例。

(Get-Content input.json) | ForEach-Object {
$_ -replace '333', '666'
} | Set-Content output.json

这应该改变:

  • “se333”→“se666”
  • “SE333”→“SE666”
  • “333”→“666”

这应该保持不变:

  • “1212333”→不变
  • “3331212”→不变
  • “333asda”→不变
  • “asd333”→不变

PowerShell 正则表达式解决方案是什么?

最佳答案

你可以使用

(?i)(?<=\b(?:se)?)333\b

参见 regex demo

详情

  • (?i) - 不区分大小写的修饰符
  • (?<=\b(?:se)?) - 之前 333必须有一个词边界和一个可选的子字符串 se
  • 333 - 文字子串
  • \b - 尾随单词边界。

Powershell 测试:

PS> $s = "se333 SE333 333 1212333 3331212 333asda asd333"
PS> $s -replace '(?i)(?<=\b(?:se)?)333\b', '666'
se666 SE666 666 1212333 3331212 333asda asd333

关于regex - 使用 PowerShells 正则表达式解析和替换多个变体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45978798/

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