以下代码是使用正则表达式从文件(urlfile 包含大约 1000 个链接)中提取 /support/security/*.html 链接到 urlsort 文件,但我对正则表达式不太熟悉,有人可以告诉我如何做到这一点吗……?
#!/usr/bin/env python
import re,sys
fileHandle = open('urlfile', 'r')
f1 = open('urlsort', 'w')
for line in fileHandle.readlines():
links = re.findall(r"(\/support\/security\/*.html.*?)", line)
for link in links:
sys.stdout = f1
print ('%s' % (link[0]))
sys.stdout = sys.__stdout__
f1.close()
fileHandle.close()
答案1
您的正则表达式有两个错误,一个是.
在第一个之前缺失的*
,另一个是?
在结尾附近多了一个。
urlsort
这里是一些使用一些 Python 习语来编写与您的模式匹配的 URL 的代码。
#!/usr/bin/env python
import re
with open('urlfile', 'r') as urls_in:
with open('urlsort', 'w') as urls_out:
for line in urls_in:
links = re.findall(r"(\/support\/security\/bulletins\/.*.html)", line)
if links:
urls_out.write("%s\n" % links[0])