regex - 带有“.”的 PowerShell 正则表达式 电源外壳
问题描述
我想用 PowerShell 替换循环中某些字符串的一部分
示例字符串
testvm029.vmxxx
我想替换 .vmxxx 中的所有内容。每个字符串都有另一个长度,但都以.vm...
所以结果应该是:testvm029
我尝试了以下脚本:
Foreach($String in $Strings) {
$StringTest = $String -replace "(.vm)(.+)","$null"
}
当然,这首先会杀死我的字符串,vm
而不是.vm...
结果:
test
我怎样才能实现我的目标?
编辑:.vm 不是最后一个 '.' 我的字符串是这样的:
test123.vmabc.string
以后想剪.vm
解决方案
你需要使用
$String -replace '\.vm.*'
查看正则表达式演示
该模式将找到第一.vm
个子字符串(with \.vm
),然后匹配字符串的其余部分(with .*
)。匹配将被替换为空字符串(默认情况下使用它,但您可以显式编写它,$String -replace '\.vm.*', ''
)。
推荐阅读
- postgresql - 如何在 PostgreSQL 中将时间戳转换为秒(和分数)
- sql - 计算 sql 中 1 列的重复项
- python - windows调度程序不执行我的python脚本-为什么?
- node.js - 在 Strapi 中访问图像 url
- sorting - 从文本文件中删除每个单独列中的重复项
- php - 绕过 Google Recaptcha V2 服务器端验证 (PHP) 的垃圾邮件发送者/机器人
- java - Spring WebClient 相当于 Http request.setEntity()?
- python - 为什么我在访问我的类中的实例变量时出错(python)
- python - 我在 Python 中的分数简化函数中的 return 语句不起作用
- java - win10如何解析java jdk与系统变量一起使用?