本文介绍了Powershell .Replace 正则表达式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

RegEx for Replace 让我大吃一惊.我正在尝试查找:

RegEx for Replace is kicking my butt. I am trying find:

value="COM8"/>

在一个文本文件中,将COM8"替换为另一个 com 端口(即COM9"、COM13"等).

in a text file and replace "COM8" with another com port (ie "COM9", "COM13", etc).

(Get-Content 'C:\Path\File.config').Replace('/".*?"', '"COM99"') | Set-Content 'C:\Path\File.config'

预先感谢您提供的任何帮助.

Thank you in advance for any help you can provide.

推荐答案

Get-Content 生成字符串列表.Replace() 通过 成员枚举.意思是,您正在调用 String.Replace() 方法,而不是 Regex.Replace() 方法.前者只进行普通的字符串替换.

Get-Content produces a list of strings. Replace() is called on each string via member enumeration. Meaning, you're calling the String.Replace() method, not the Regex.Replace() method. The former does only normal string replacements.

使用 -replace 运算符相反:

Use the -replace operator instead:

(Get-Content 'C:\Path\File.config') -replace '=".*?"', '="COM99"' |
    Set-Content 'C:\Path\File.config'

这篇关于Powershell .Replace 正则表达式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-15 01:22