如何让 NetBeans 搜索包含奇数空格的 HTML?

如何让 NetBeans 搜索包含奇数空格的 HTML?

例如,对于包含大量如下代码片段的代码:

<section>
    <p><b>test</b></p>
</section>

我希望能够搜索:

<section>
    <p><b>

这样我就可以将其替换为

<section>
    <h2>

但不能替换<p><b>前面没有节标签的其他节。

因此,我无法搜索,<p><b>但 NetBeans 不允许我粘贴带有空格的选择。因此,我假设我需要使用正则表达式搜索以下内容:

<section>(any-white-space)<p><b>

但我不太清楚该怎么做。如能得到任何帮助我将不胜感激。

答案1

我已经在 jEdit 中测试过它(它也是用 Java 编写的,就像 Netbeans 一样,但我目前无法访问 Netbeans)。请尝试以下正则表达式模式:

(?<=<section>)(\s*)<p><b>([^<]+)</b></p>

用这个来代替:

$1<h2>$2</h2>

正则表达式模式表示“匹配一个序列,该序列以<section>任意数量的空格开头(存储为捕获组 1),然后包含<p><b>至少一个不是的字符<(并将这些字符存储为捕获组 2)并以</b></p>“结尾”。

替换模式只是说“从捕获组 1 中的空格开始,然后输出在元素<h2>中找到的捕获组 2 中的字符<b>,然后输出</h2>。”捕获和输出空格意味着新的 h2 元素将以与 p 元素相同的换行符和制表符开头,因此任何漂亮的格式都不会因更改而遭到破坏。

请记住,正则表达式无法知道它相对于 DOM 结构的位置,因此它无法知道使用 h1、h2、h3、h4 等是否正确。但如果您只需要,<h2>请尝试一下。

(实际上,如果您使用 HTML5,那么您可以使用一个<h1>元素或任何其他起始数字来开始每个新的部分元素,并且需要兼容的浏览器来自动处理标题级别。)

相关内容