删除多行代码渲染块(< %%>)及其内容

时间:2015-12-07 21:51:04

标签: regex powershell

我在字符串上使用Powershell的-Replace选项。我使用$content加载了变量Get-Content和文件中的文本。以下是字符串变量$content中的文本示例:

I want to keep this text,
<%
    Response.Cookies("abcebklocn") = "0"
    Response.Cookies("lastpage") = "76"
    srchterms=Request.QueryString("srch")
%> and also keep this text.

我正在尝试删除代码渲染块("<%...%>")的所有实例及其中的内容,但我使用的命令既不删除标记也不删除多行内容。这是命令:

$content = $content -replace "<%\n\r+([\s\S]*?)%>\n\r+",""

1 个答案:

答案 0 :(得分:0)

到目前为止,您可能只会在一行中查找这些标记。

这样的事情可能会成功。开头的(?s)标记允许.匹配换行符,并且为apparently supported by Powershell

$content = $content -replace '(?s)<%.*?%>',''

也许现在我已经正确标记了你的问题,你可能会从知道他们正在谈论的内容的人那里得到答案。 :)