regex - Powershell 逆替换正则表达式
问题描述
Powershell 7.0 脚本:我想反转我在replace
.
我有这样的事情:
$a = $_.BaseName -replace 'REGEX', ''
这里的名字是这种模式(随机是随机字符和不同长度的数字):
random A00B00 random
数字都是不同的。我可以使用A[0-9][0-9]B[0-9]
来匹配我想要的,但是,我只替换我想要的。
我希望命令后的字符串是A00B00
而不是random random
。
我尝试了不同的正则表达式,但对我没有任何帮助
解决方案
你有几个选择来实现你正在寻找的东西。
一种方法是使用正则表达式环顾四周并替换您不想要的内容:
'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'
推荐阅读
- node.js - sequelize index 选项运行两次并导致测试失败
- java - 批量消费者丢弃元素
- python - 删除另一列中具有转换值后日期的行以创建归因链
- java - Jacoco 仅针对分支排除类覆盖率报告为零
- python - 在pythom中打印多类随机森林的混淆矩阵
- c++ - 如何进行数据归一化以使与原点的 RMS 距离为 sqrt(2)?
- swift - MacOs:如何在 Swift 中选择屏幕的一部分并获取 CGRect(位置和坐标)
- python - 使用 NumPy 进行自适应高斯滤波
- jvm - 当 JVM 终止时,OkHttp 似乎没有关闭连接
- c# - 我将如何使按钮闪烁?