Powershell反向替换正则表达式

问题描述 投票:0回答:1

Powershell 7.0脚本:我想撤消替换中使用的正则表达式

我有这样的东西:$ a = $ _。BaseName-替换'REGEX',''

这里的名称采用这种模式(随机是随机字符和具有不同长度的数字):随机A00B00随机

其中数字都是不同的。我可以使用A[0-9][0-9]B[0-9]来匹配我想要的内容,但是我只能替换我想要的内容。但我希望命令后的字符串是A00B00,而不是random random

我尝试了不同的正则表达式,但对我没有用

regex powershell replace
1个回答
0
投票

您有几种选择可实现所需的内容。

一种方法是使用正则表达式环顾四周并替换您不想要的内容:

'random A00B00 random' -replace '(?<=^).*(?=A\d{2}B\d{2})' -replace '(?<=A\d{2}B\d{2}).+'

或者您使用向后引用,并用正则表达式捕获组中匹配的原始字符串的一部分替换您的字符串:

'random A00B00 random' -replace '.+(A\d{2}B\d{2}).+','$1'
© www.soinside.com 2019 - 2024. All rights reserved.