PowerShell如何删除字符串中特定表达式",=dc"后的全部内容
问题排查
你现有代码的问题主要有3处:
- 正则匹配模式写反,匹配示例内容需要的分隔串是
,dc=,而非代码里写的,=dc - 循环内误用未定义变量
$arraytype,应该使用当前循环的变量$value - 没有接收替换后的结果,处理后的内容无法被保存或输出
可行实现代码
# 初始化待处理数组 $array = @( "vu=doc,vu=noc,dc=zet,dc=zez", "vu=doc,vu=nud,dc=gut,dc=zrt", "vu=doc,vu=nud,vu=dit,dc=gut,dc=zrt,dc=opt" ) # 遍历处理每个字符串,保留首次出现,dc=之前的内容 $processedResult = foreach ($value in $array){ $value -replace ",dc=.*", "" } # 输出结果验证 $processedResult
运行输出
vu=doc,vu=noc vu=doc,vu=nud vu=doc,vu=nud,vu=dit
补充说明
正则,dc=.*的逻辑是:匹配第一个出现的,dc=字符串,以及后面到行尾的所有字符,替换为空后就只剩下,dc=之前的内容。如果你实际要匹配的确实是题目里写的,=dc,仅需把正则改为,=dc.*即可。
内容的提问来源于stack exchange,提问作者joneshelo
相关产品推荐
相关产品推荐

