我的第一个基于 Web的过滤代理
2007-03-29 11:58:53 来源:WEB开发网我曾遇到过一个小问题,由于生成资源的平台和您的平台使用不同的行结束约定,生成的文本中可能会发生某些奇怪的事(这似乎是 urllib 中的错误)。这个问题的解决方法是在以上代码中执行小小的 .readlines() 循环。不管该资源原来是什么样子,这个操作会给您一个字符串,它都有所使用平台的正确行结束约定(估计可能合理)。
使用 re 模块
由于本文篇幅限制,这里只讨论一部分规则表达式。 参考资料中列出了许多关于该主题的参考书籍。 re 模块在 Txt2Html 中的使用很广泛,用于标识源文本中的各种文本模式。我们查看一个比较复杂的例子:
使用 Python [re] 模块 import
re
def
URLify
(txt):
txt = re.sub(
'((?:http|ftp|gopher|file)://(?:[^
<)]+))(s)',
'<a href="\1">\1</a>\2', txt)
return
txt
URLify() 是一个小巧函数,它的功能正如其名称所示。如果在“智能 ASCII”文件中遇到了类似于 URL 的字符串,它将转换成 HTML 输出中同一个 URL 真正的热链接。让我们看看 re.sub() 的作用。首先,从最主要的角度来看,函数的目的是“查找与第一个模式中的值匹配的字符串,然后通过将第三个变量作为要操作的字符串,以第二个模式替换匹配结果”。非常好,从这些角度来看,它与 string.replace() 没有什么区别。
第一个模式有几个元素。首先,请注意括号:最高层次由两对括号组成:(S) 前复杂的字符串。括号对与可能组成部分替换模式的“子表达式”匹配。第二个子表达式 (s) 只表示“查找与任何空格字符匹配的字符串,让我们回过来看什么与之匹配”。因此,让我们研究一下第一个子表达式。
更多精彩
赞助商链接