首页 > 解决方案 > 使用 powershell 和 regex 操作字符串

问题描述

我有一个 html 文件,其中包含如下部分:

                <li>
                    <a href="../index.html" name="" title="title1">title1</a>
                </li>
                <li>
                    <a href="level1/level1.html" name="" title="title2">title2</a>
                </li>
                <li>
                    <a href="levl1/level2/level2.html" name="" title="title3">title3</a>
                </li>

我希望它们看起来像这样:

                <li>
                    <a href="../" name="" title="title1">title1</a>
                </li>
                <li>
                    <a href="level1/" name="" title="title2">title2</a>
                </li>
                <li>
                    <a href="level1/level2/" name="" title="title3">title3</a>
                </li>

我在powershell中编写了一个脚本来操作这些href链接,如下所示:

(Get-Content $i) -replace '/*.html', '/' | Set-Content $i

但不知何故,输出没有按预期进行。知道我在做什么错吗?

标签: regexpowershellreplace

解决方案


我会使用这样的东西:

(Get-Content in.html) -replace '\/[a-zA-Z0-9_-]+\.html', '/' | Set-Content out.html

推荐阅读