Powershell 7.0脚本:我想撤消在replace
中使用的正则表达式。
我有这样的东西:
$a = $_.BaseName -replace 'REGEX', ''
此处的名称采用这种模式(随机是随机字符和长度不同的数字):
random A00B00 random
其中的数字都是不同的。我可以使用A[0-9][0-9]B[0-9]
来匹配我想要的东西,但是,我只替换了我想要的东西。
我希望命令后的字符串是A00B00
而不是random random
。
我尝试了不同的正则表达式,但对我没有用
答案 0 :(得分:3)
您有几种选择可以实现所需的内容。
一种方法是使用regex环顾四周并替换不想要的内容:
'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'