0

我需要在很多静态 html 文件中进行大量搜索和替换。我想出的一个问题是,当我真正想要搜索/替换的只是文本节点时,我在 urls 中得到了匹配。

因此,这使得正则表达式更加困难并且很可能更容易出错,因为您现在正在使用它们解析 html。

仅在文本节点上进行搜索/替换的最简单方法是什么我说的是你可以在几分钟内启动并运行,而无需 Python-Java-Ruby-Headless-Phantom-PHP-Node-FluxCapacitor 中的 Master。

请提供建议,就好像你在和一个白痴说话一样。

我在Windows 7上。

我正在寻找类似 Notepad++ 中的搜索/替换功能。你给它一个开始搜索的目录,它递归搜索,点击你指定的每种类型的文件(如 .html 或 .shtml)你告诉它要搜索什么以及用什么替换它。它会运行,10 或 15 秒后,您可能已经一口气编辑了数百个文件。你知道,死的简单的东西。

这就是我想要做的,但只是在文本节点中搜索/替换。

4

2 回答 2

0

SublimeText 2 has some very powerful text searching features that should empower you to be able to do as you are explaining, so whilst i think i can point you in the right direction - I myself am still learning how to use it - but it does have the "find in files" option which means you can grab the selected word in many different files and replace it - but I havn't found a way to exclude the irrelevant ones that may not need changing. Hopefully someone else will come along and enlighten you.

You may want to add the tag "Sublime text 2" to your original post to broaden the audience

于 2013-02-22T01:01:58.843 回答
0

您可以在http://htql.net使用 Python 和 HTQL 。一些例子:

page="<html> <body> <table> <tr><td id='cell1'> test1 </td></tr> <tr> <td id='cell2'> test2 </td> </tr> </table> </body> </html>"

import htql
print(htql.query(page, "<td (id='cell1')>:tx &replace('XXXX') "))
#[("<html> <body> <table> <tr><td id='cell1'>XXXX</td></tr> <tr> <td id='cell2'> test2 </td> </tr> </table> </body> </html>",)]

print(htql.query(page, "<td (id='cell1')>:id &replace('ZZZZ') "))
#[("<html> <body> <table> <tr><td id='ZZZZ'> test1 </td></tr> <tr> <td id='cell2'> test2 </td> </tr> </table> </body> </html>",)]

print(htql.query(page, "<td (id like 'cell%')>:tx &replace('YYYY') "))
#[("<html> <body> <table> <tr><td id='cell1'>YYYY</td></tr> <tr> <td id='cell2'>YYYY</td> </tr> </table> </body> </html>",)]
于 2013-02-26T04:37:02.330 回答