使用 Python 正则表达式从 CSS @font-face 声明中提取 URL

您想从 CSS 代码中提取 @font-face 声明中的 URL 吗?可以使用 Python 的正则表达式来轻松实现。

假设您有以下 CSS 代码片段:

'fontStyle': '@font-face{font-family: 'mtsi-font';src:url('//s3plus.meituan.net/v1/mss_73a511b8f91f43d0bdae92584ea6330b/font/e3dfe524.eot');src:url('//s3plus.meituan.net/v1/mss_73a511b8f91f43d0bdae92584ea6330b/font/e3dfe524.eot?#iefix') format('embedded-opentype'),url('//s3plus.meituan.net/v1/mss_73a511b8f91f43d0bdae92584ea6330b/font/e3dfe524.woff');}'

如何通过 Python 正则获取 //s3plus.meituan.net/v1/mss_73a511b8f91f43d0bdae92584ea6330b/font/e3dfe524.woff 内容

您可以使用以下正则表达式来提取 URL:

import re

text = ''fontStyle': '@font-face{font-family: 'mtsi-font';src:url('//s3plus.meituan.net/v1/mss_73a511b8f91f43d0bdae92584ea6330b/font/e3dfe524.eot');src:url('//s3plus.meituan.net/v1/mss_73a511b8f91f43d0bdae92584ea6330b/font/e3dfe524.eot?#iefix') format('embedded-opentype'),url('//s3plus.meituan.net/v1/mss_73a511b8f91f43d0bdae92584ea6330b/font/e3dfe524.woff');}'

pattern = r'url\('(.*?)\'\)' 

urls = re.findall(pattern, text)

print(urls)

输出:

['//s3plus.meituan.net/v1/mss_73a511b8f91f43d0bdae92584ea6330b/font/e3dfe524.eot', '//s3plus.meituan.net/v1/mss_73a511b8f91f43d0bdae92584ea6330b/font/e3dfe524.eot?#iefix', '//s3plus.meituan.net/v1/mss_73a511b8f91f43d0bdae92584ea6330b/font/e3dfe524.woff']

这将返回一个包含所有 URL 的列表。

正则表达式解释:

  • url\('(.*?)\'\): 匹配 url('...') 格式的字符串,其中 (...) 部分是需要提取的 URL。
  • \(\): 转义括号字符,使其在正则表达式中被视为普通字符。
  • ': 匹配单引号字符。
  • (.*?): 匹配任意字符,非贪婪模式,尽可能少的匹配。
  • re.findall(): 查找所有匹配的 URL,并返回一个列表。

注意:

  • 代码中的 text 变量包含 CSS 代码片段,请将它替换为您需要分析的实际 CSS 代码。
  • 您可以根据需要修改正则表达式以适应其他类型的 URL 模式。

希望这篇文章对您有所帮助!

Python 正则表达式提取 CSS @font-face URL

原文地址: https://www.cveoy.top/t/topic/gyHK 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录