【发布时间】:2018-02-05 09:36:00
【问题描述】:
我发现这里的大多数帖子都在接近标签以在文本文件中查找 url。但并非所有文本文件都必须在它们旁边有 html 标签。我正在寻找一种适用于这两种情况的解决方案。以下正则表达式是:
'http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+'
regex 使用下面的代码从文本文件中获取 url,但问题是它也需要不必要的字符,例如 '>'
这是我的代码:
import re
def extractURLs(fileContent):
urls = re.findall('http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', fileContent.lower())
print urls
return urls
myFile = open("emailBody.txt")
fileContent = myFile.read()
URLs = URLs + extractURLs(fileContent)
输出示例如下:
http://saiconference.com/ficc2018/submit
http://52.21.30.170/sendy/unsubscribe/qhiz2s763l892rkps763chacs52ieqkagf8rbueme9n763jv6da/hs1ph7xt5nvdimnwwfioya/qg0qteh7cllbw8j6amo892ca>
https://www.youtube.com/watch?v=gvwyoqnztpy>
http://saiconference.com/ficc
http://saiconference.com/ficc>
http://saiconference.com/ficc2018/submit>
如您所见,有一些字符(例如“>”)会导致问题。我做错了什么?
【问题讨论】:
-
你能分享一些emailBody.txt的内容吗?那么帮助你会更容易
-
很难理解你的文字。所以你能在你的问题中添加这个文本吗?在
URLs = URLs + extractURLs(fileContent),你之前没有定义URLs -
抱歉打扰了。我知道我的问题与正则表达式有关。请想象其余代码工作正常。