【发布时间】:2020-04-22 23:18:00
【问题描述】:
目前我正在尝试使用正则表达式从包含正确和不正确 URL 的字符串中获取正确的 URL。代码的结果应该给出输入字符串中正确 URL 的列表。问题是我无法摆脱"http://example{.com",因为我想出的只是获得"{" 字符并在结果中获得"http://example"。
我正在检查的代码如下:
import re
text = "https://example{.com http://example.com http://example.hgg.com/da.php?=id42 http\\:example.com http//: example.com"
print(re.findall('http[s]?[://](?:[a-zA-Z0-9$-_@.&+])+', text))
那么有没有一种好方法可以获取所有匹配项,但不包括包含错误字符的匹配项(如"{")?
【问题讨论】:
-
所有的网址都是用空格隔开的吗?
-
是的。我需要从中提取 URL 的字符串是包含由空格分隔的各种版本的 URL 的字符串
-
我需要从中提取 URL 的字符串是一个字符串,其中包含用空格分隔的各种版本的 URL 在这种情况下,您应该做的是拆分潜在的 URL,然后检查每一个,这意味着 这是重复的,正如@Bruno 所指出的那样 我要补充的唯一一点是,您真的不应该在其中的任何部分使用正则表达式。
-
另一个可能有用的问题:stackoverflow.com/q/22238090/11301900.