Python 如何从字符串中提取url,该字符串包含协议和地址其余部分之间的空格?
假设我有以下字符串(在Python中): 我想提取以下url:Python 如何从字符串中提取url,该字符串包含协议和地址其余部分之间的空格?,python,regex,Python,Regex,假设我有以下字符串(在Python中): 我想提取以下url: http:// somewebpage.com 我找到了使用正则表达式的解决方案,但不适用于地址前有空格的情况。如下: myString = myString.split() index = myString.index('http://') url = ''.join(myString[index:index+2]) 注意,我在每个单词上拆分句子,但只将http部分与紧跟其后的部分连接起来 如果您确实需要空间(我无法想象为什么
http:// somewebpage.com
我找到了使用正则表达式的解决方案,但不适用于地址前有空格的情况。如下:
myString = myString.split()
index = myString.index('http://')
url = ''.join(myString[index:index+2])
注意,我在每个单词上拆分句子,但只将http
部分与紧跟其后的部分连接起来
如果您确实需要空间(我无法想象为什么),请将'
替换为'
,如下所示:
myString = myString.split()
index = myString.index('http://')
url = ''.join(myString[index:index+2])
注意,我在每个单词上拆分句子,但只将http
部分与紧跟其后的部分连接起来
如果您确实需要空间(我无法想象为什么),请将'
替换为'
纯正则表达式解决方案:
http://\s[\w\.]+
查找任何字母或句点[\w\.]
查找上述字符1次或多次+
- 纯正则表达式解决方案:
http://\s[\w\.]+
查找任何字母或句点[\w\.]
查找上述字符1次或多次+
>>>mystring = "For further information please visit http:// somewebpage.com and please do not hesitate to contact us"
>>>url = re.findall('http[s]?:// (?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', mystring)[0]
>>>url
http:// somewebpage.com
试试这个正则表达式:
>>>mystring = "For further information please visit http:// somewebpage.com and please do not hesitate to contact us"
>>>url = re.findall('http[s]?:// (?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', mystring)[0]
>>>url
http:// somewebpage.com
- http-匹配http序列
- s?-匹配0或1s(对于https)
- :-匹配:
- /-匹配两个//
- \s-匹配一个空格
- \S+-匹配任何非空格字符1次或多次
http:// somewebpage.com
https:// somewebpage.com
http:// 1234.com/test
但不是:
ftp:// www.test.com.xx
http://www.google.com
http://
- http-匹配http序列
- s?-匹配0或1s(对于https)
- :-匹配:
- /-匹配两个//
- \s-匹配一个空格
- \S+-匹配任何非空格字符1次或多次
http:// somewebpage.com
https:// somewebpage.com
http:// 1234.com/test
但不是:
ftp:// www.test.com.xx
http://www.google.com
http://
您需要哪些协议?@marvel308 only http您需要哪些协议?@marvel308 only http此协议获得的是而不是“http://somewebpage.com”。对不起,这是堆栈溢出的格式问题。我想说的是,在“http://”和url的剩余字符串之间没有空格。很好,我认为解决方案现在可以了。@Ofer Sadan,非常感谢。奇怪的是,我用刮板来刮旧的推文,嵌入的URL总是在协议后面有一个空格。这一个代替了“http://somewebpage.com”。对不起,这是堆栈溢出的格式问题。我想说的是,在“http://”和url的剩余字符串之间没有空格。很好,我认为解决方案现在可以了。@Ofer Sadan,非常感谢。奇怪的是,我用刮板刮旧的推文,嵌入的URL在协议后总是有一个空格。试什么?我们在这里寻找什么?@rick112358正则表达式从字符串返回url。尝试什么?我们在这里找什么?@rick112358正则表达式从字符串返回url。@LukeBalizet谢谢。这个很好用。替换正则表达式输出的空格为我提供了解决方案。@LukeBalizet谢谢。这个很好用。替换regex输出的空间为我提供了解决方案。