提取网址直到.com、.org等

  • 本文关键字:org com 提取 python regex
  • 更新时间 :
  • 英文 :


下面是我提取URL的正则表达式

url_extractor  re.compile(r'((?:www.|http:|https:)[^s]+)', re.IGNORECASE)
mystring = """https://myname.abc.comsomename: """

上面的正则表达式提取 URL 和.com后存在的任何字符,在本例中为somenamehttps://myname.abc.comsomename

我只想提取直到.com.org(含)如果存在。如果 URL 不以.com.org结尾,我想提取直到空格。

所以在上面的例子中,预期的结果https://myname.abc.com

如果 URLhttps://myname.abc.xyz somename,预期结果为https://myname.abc.xyx.

如何修改上面的正则表达式?

您可以使用

re.compile(r'(?:www.|https?:)S*?(?:.(?:com|org)|(?=s)|$)', re.IGNORECASE)

查看正则表达式演示

  • (?:www.|https?:)-www.http:https:
  • S*?- 0 个或多个非空格字符,尽可能少
  • (?:.(?:com|org)|(?=s)|$)-.,然后comorg,或者紧跟空格或字符串末尾的位置。

蟒蛇演示:

import re
text = r'somename https://myname.abc.comsomename: if the URL is https://myname.abc.xyz somename..'
rx = re.compile(r'(?:www.|https?:)S*?(?:.(?:com|org)|(?=s)|$)', re.IGNORECASE)
print ( rx.findall(text) )
# => ['https://myname.abc.com', 'https://myname.abc.xyz']

相关内容

最新更新