首页 > 解决方案 > 如何用powershell替换每行的第一部分和最后一部分

问题描述

我想使用 PowerShell 来修改文本文件。

我想 -替换

-replace 中用于匹配此请求的正则表达式是什么?

示例 - 文件输入

[REPLACE_IN_THIS_LINE]
[DO_NOT_REPLACE_IN_THIS_LINE_PLEASE]
[REPLACE_VERY_MUCH_IN_THIS_LINE]
Do not replace in this line[REPLACE_IN_THIS_LINE]

示例 - 文件输出

ENJOY_IN_THIS_LIFE
[DO_NOT_REPLACE_IN_THIS_LINE_PLEASE]
ENJOY_VERY_MUCH_IN_THIS_LIFE
Do not replace in this line[REPLACE_IN_THIS_LINE]

正如你所看到的,在这个例子中,只有第 2 行和第 4 行发生了变化......

我想出了这个来匹配字符串:-match "^\[REPLACE.*LINE\]$"但我不知道如何-replace正确替换......

标签: regexpowershellreplace

解决方案


我认为您需要使用“^”来验证行首,而“$”将处理行尾。我用 Java 编写了一个代码,但你可以使用这个正则表达式。

String input="[REPLACE_IN_THIS_LINE]"
Pattern Pat=Pattern.compile(("^(\\[REPLACE)(.)*(LINE\\])$"));
Matcher Mat=Pat.matcher();
if(Mat.find())
{
    input=input.replace("[REPLACE","Enjoy").replace("LINE]","Life")
}

推荐阅读