【发布时间】:2021-06-02 13:58:39
【问题描述】:
目标是准备一个 HTML 文件以使用 PowerShell 转换为 Markdown。
PowerShell 脚本包括以下几行:
-replace '<pre.*?>(.*?)</pre>', '`$1`'`
-replace '<code.*?>(.*?)</code>', '`<b>$1</b>`'`
有时 HTML 包含text <pre><code>text</code></pre> text。有时它只包含text <code>/text</code> text。
由于 Markdown 将由单个反引号 (`) 包围的文本解释为出于文体目的的“代码”,我希望 PowerShell 搜索/替换为:
- 如果存在
<pre>...</pre>,请将<pre>...</pre>替换为反引号,而不是<code>...</code>。 - 如果
<pre>...</pre>不存在,请将<code>...</code>替换为反引号。
(如果我做错了,我会很高兴知道。)
我走错了方向,因为我尝试过的任何正则表达式都不起作用。
-
^(?!.*?[</pre>]).*$<code.*?>(.*?)</code>(没有匹配) -
^((?!</pre>$).)*<code.*?>(.*?)</code>(即使存在</pre>也匹配) -
^(?!</pre>$).*<code.*?>(.*?)</code>(即使存在</pre>也匹配) - 等
谁能指出我正确的方向?感谢您的帮助。
(我知道有一些工具可以自动将 HTML 转换为 Markdown,我正在使用其中一个 - 这只是基于我们特定输出中的不规则性的独特准备步骤。)
【问题讨论】:
标签: html regex powershell markdown