gpt4 book ai didi

notepad++ - Notepad++ 中的复杂查找和替换

转载 作者:行者123 更新时间:2023-12-02 10:47:32 25 4
gpt4 key购买 nike

我有数百个文件,其中包含类似以下内容的文件,我想删除整个 block 。

   <texttool id="468" rect="55,306,319,23">
<toolstroke />
<toolcolor />
<font style="2" size="18" />
<Text>(Be sure to state the page/problem number.)</Text>
</texttool>

问题是它们都有不同的 id=XXX 部分...但其他一切都是一样的。

有没有办法进行批量查找和替换来处理这种情况?

最佳答案

使用以下正则表达式将搜索整个文件并删除所有 <texttool> block 及其内部内容:

(<texttool(?:.|\n)*?<\/texttool>)

之前

 text before<texttool id="468" rect="55,306,319,23">
<toolstroke />
<toolcolor />
<font style="2" size="18" />
<Text>(Be sure to state the page/problem number.)</Text>
</texttool> text after

<texttool id="468" rect="55,306,319,23">
<toolstroke />
<toolcolor />
<font style="2" size="18" />
<Text>(Be sure to state the page/problem number.)</Text>
</texttool>

之后

 text before text after

您可以在这个DEMO中亲自尝试一下。

更新 1

根据要求,以下正则表达式将仅删除那些 <texttool>包含以下属性 - rect="55,306,319,23" :

(<texttool.*rect=\"55\,306\,319\,23\"(?:.|\n)*?<\/texttool>)

这是更新后的正则表达式 DEMO .

请注意,它只会匹配那些包含该特定字符串的 block ,并逐个字符地匹配其文字。

更新2

我提供的正则表达式在 Notepad++ 中无法正常工作,因为它使用基于自定义 PCRE 的正则表达式系统。这是一个经过测试和验证的适合我的模式:

<\btexttool.*\brect\=\"55\,306\,319\,23\"([\s\S]*?)<\/\btexttool>

禁用 . matches newline 非常重要 Notepad++ 搜索窗口中的选项,否则该模式将不起作用,因为提供的模式与其不兼容。

关于notepad++ - Notepad++ 中的复杂查找和替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56435697/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com