Teleport Ultra/Teleport Pro的冗余代码批量清理方法
html原文件中tppabs标记是Teleport Pro软件留下的标记。该软件是离线浏览器,下载完整个网页后,它会在图片或超级链接标签内插入tppabs标签,以记录该图片或超级链接指向的原始地址。因为这个标签不是合法标签,所以普通浏览器会忽略它。但可以通过element.getAttribute("tppabs")在JS中读取这个属性。
如我们手动清除的话,那将是一个无法估计的工作量,需要批量清除。利用DreamWeaver正则表达式批量清除tppabs标签更加容易、快捷。
方法如下:
使用DW替换功能:
查找范围:整个当前本地站点
搜索:源代码
查找:\btppabs="h[^"]*"
替换:(为空)
勾选:使用正则表达式
点替换全部按钮即可
匹配javascript代码:
<a href="javascript: if(confirm('http://www.xxx.com \n\n文件并未依 Teleport Pro 取回,因为服务器报告错误导致无法读取。 \n\n你要从服务器上打开它吗?'))window.location='http: //www.xxx.com'" >
方法如下:
查找范围:整个当前本地站点
搜索:源代码
查找:href="javascript:if\(confirm\('htt[^"]*"
替换:href=www.xxx.com
勾选:使用正则表达式
点替换全部按钮
注:如果该表达式中含有不同的网址,可使用if\(confirm\('htt[^"]*\)(注意其他代码是否使用此类语法表达)匹配不带网址的部分,替换成空。
css文件有一些类似/*tpa=http://www.xxx.com/test.gif*/代码
方法如下:
查找范围:整个当前本地站点
搜索:源代码
查找:\/\*tpa=http://[^\s]*\/
替换:空
勾选:使用正则表达式
点替换全部按钮
字符 | 匹配 | 示例 |
^ | 输入或行的起始部分。 | ^T 匹配“This good earth”中的“T”,但不匹配“Uncle Tom's Cabin”中的“T”。 |
$ | 输入或行的结尾部分。 | h$ 匹配“teach”中的“h”,但是不匹配“teacher”中的“h” |
* | 0 个或多个前置字符。 | um* 匹配“rum”中的“um”、“yummy”中的“umm”以及“huge”中的“u” |
+ | 1 个或多个前置字符。 | um+ 匹配“rum”中的“um”和“yummy”中的“umm”,但在“huge”中没有任何匹配项 |
? | 前置字符最多出现一次(即,指示前置字符是可选的)。 | st?on 匹配“Johnson”中的“son”和“Johnston”中的“ston”,但在“Appleton”和“tension”中没有任何匹配项 |
. | 除换行符外的任何单字符。 | .an 匹配短语“bran muffins can be tasty”中的“ran”和“can” |
x|y | x 或 y。 | FF0000|0000FF 匹配 bgcolor=”#FF0000” 中的“FF0000”和 font color=”#0000FF” 中的“0000FF” |
{n} | 恰好 n 个前置字符。 | o{2} 匹配“loom”中的“oo”和“mooooo”中的前两个“o”,但在“money”中没有任何匹配项 |
{n,m} | 至少 n 个、至多 m 个前置字符。 | F{2,4} 匹配“#FF0000”中的“FF”和“#FFFFFF”中的前四个“F” |
[abc] | 用括号括起来的字符中的任何一个字符。用连字符指定某一范围的字符(例如, [a-f] 等效于 [abcdef])。 | [e-g] 匹配“bed”中的“e”、“folly”中的“f”和“guard”中的“g” |
[^abc] | 未在括号中括起来的任何字符。用连字符指定某一范围的字符(例如,[^a-f] 等效于[^abcdef])。 | [^aeiou] 最初匹配“orange”中“r”、“book”中的“b”和“eek!”中的“k” |
\b | 词边界(例如空格或回车符)。 | \bb 匹配“book”中的“b”,但在“goober”和“snob”中没有任何匹配项 |
\B | 词边界之外的任何内容。 | \Bb 匹配“goober”中的“b”,但在“book”中没有任何匹配项 |
\d | 任何数字字符。等效于 [0-9]。 | \d 匹配“C3PO”中的“3”和“apartment 2G”中的“2” |
\D | 任何非数字字符。等效于 [^0-9]。 | \D 匹配“900S”中的“S”和“Q45”中的“Q” |
\f | 换页符。 | |
\n | 换行符。 | |
\r | 回车符。 | |
\s | 任何单个空白字符,包括空格、制表符、换页符或换行符。 | \sbook 匹配“blue book”中的“book”,但在“notebook”中没有任何匹配项 |
\S | 任何单个非空白字符。 | \Sbook 匹配“notebook”中的“book”,但在“blue book”中没有任何匹配项 |
\t | 制表符。 | |
\w | 任何字母数字字符,包括下划线。等效于 [A-Za-z0-9_]。 | b\w* 匹配“the barking dog”中的“barking”以及“the big black dog”中的“big”和“black” |
\W | 任何非字母数字字符。等效于 [^A-Za-z0-9_]。 | \W 匹配“Jake&Mattie”中的 |
Teleport Pro 是款优秀的网站离线浏览工具(即网站整站下载工具),Teleport Ultra是其增强版,但使用此系列软件下载的离线网页里会包含大量冗余代码(如tppabs),手动去修改工作量很大,下面介绍如何通过软件进行正则表达式批量替换冗余代码(推荐DreamWeaver的正则替换功能)。
清除tppabs标签:
html文件中:
查找:\btppabs="h[^"]*"
替换:(空)
css文件中的图片链接(以gif图片为例):
查找:tpa=http://[^\s]*.gif
替换:(空)
css文件中的注释:
查找:/\*tpa.*?\*/
替换:(空)
修复confirm链接:
查找:href=" *javascript:if\(confirm\('(htt[^"\s]*).*?"
替换:href="$1"
冗余代码示例:href="javascript:if(confirm('http://www.abcd9.com/ \n\n该文件无法用 Teleport Ultra 下载, 因为 不可用, 或放弃了下载, 或项目即将停止。 \n\n你想在服务器上打开它?'))window.location='http://www.abcd9.com/'"
示例替换后结果:href=http://www.abcd9.com/