📜  正则表达式 url 图像 (1)

📅  最后修改于: 2023-12-03 15:10:57.891000             🧑  作者: Mango

正则表达式、URL、图像

正则表达式是一种用来匹配字符串模式的工具,常用于文本处理、数据清洗等任务中。

而 URL(Uniform Resource Locator)则是用来标识某一互联网资源的地址,通常以 HTTP 或 HTTPS 开头。

图像则是一种可视化的内容,常用于网站、应用程序等界面中。

正则表达式、URL 和图像经常一起出现在程序员的工作中,以下为介绍它们的一些常用操作和应用。

正则表达式
基本语法

正则表达式使用一些特殊字符和语法来匹配文本中的模式。

例如,a* 表示匹配 0 个或多个 a? 表示和前面的模式匹配 0 次或 1 次。

一些基本的正则表达式语法:

| 字符 | 描述 | | -- | -- | | . | 匹配任意单个字符 | | ^ | 匹配字符串开头 | | $ | 匹配字符串结尾 | | * | 匹配前一个元素的 0 次或多次 | | + | 匹配前一个元素的 1 次或多次 | | ? | 匹配前一个元素的 0 次或 1 次 |

常用操作

匹配文本中的邮箱地址

import re

text = "hello world, my email is abc@def.com"
pattern = r"\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b"

emails = re.findall(pattern, text)

解释:

  • \b 表示单词边界,可以避免匹配到部分邮箱地址
  • [A-Za-z0-9._%+-]+ 表示匹配邮箱地址中的用户名部分
  • @[A-Za-z0-9.-]+\.[A-Z|a-z]{2,} 表示匹配邮箱中的域名部分,包括最后的 .com 等后缀

匹配文本中的电话号码

import re

text = "hello world, my phone number is 123-456-7890"
pattern = r"\b\d{3}[-.]?\d{3}[-.]?\d{4}\b"

phone_numbers = re.findall(pattern, text)

解释:

  • \d{3} 表示匹配 3 个数字
  • [-.]? 表示可选匹配一个短横线或句点
  • \b 表示单词边界,可以避免匹配到部分号码
URL
URL 结构

URL 通常包含以下几个部分:

<协议>://<域名>:<端口>/<路径>/<文件名>?<查询参数>#<锚点>

其中:

  • 协议:指定访问资源的方式,常见的有 HTTP 和 HTTPS
  • 域名:指定资源所在的服务器的名称或 IP 地址
  • 端口:指定服务器所监听的端口号,HTTP 默认为 80
  • 路径:指定服务器上相对于域名的文件路径
  • 文件名:指定文件名,一般用于访问服务器上的具体文件
  • 查询参数:指定向服务器传递的信息,一般使用问号 ? 开头
  • 锚点:指定页面内的锚点,一般使用 # 开头
常用操作

解析 URL

from urllib.parse import urlparse

url = "https://www.bing.com/search?q=python+web&qs=n&form=QBLH&sp=-1&pq=python+web&sc=8-10&sk=&cvid=8860105EE56345CDA5FB25ACCFCE6CDD"
parsed_url = urlparse(url)

print(parsed_url.scheme)  # https
print(parsed_url.netloc)  # www.bing.com
print(parsed_url.path)    # /search
print(parsed_url.query)   # q=python+web&qs=n&form=QBLH&sp=-1&pq=python+web&sc=8-10&sk=&cvid=8860105EE56345CDA5FB25ACCFCE6CDD

解释:

  • urlparse() 函数将 URL 分解为几个部分,并以元组的方式返回

构建 URL

from urllib.parse import urlencode

params = {
    'q': 'python web',
    'page': 2,
    'search': 'bing'
}
url = 'https://www.bing.com/search?' + urlencode(params)

print(url)  # https://www.bing.com/search?q=python+web&page=2&search=bing

解释:

  • urlencode() 函数将查询参数转换为 URL 编码格式,并拼接到 URL 中
图像
图像格式

图像可以使用多种文件格式存储,常见的有:

  • JPEG:最常见的图像格式之一,用于存储彩色图像
  • PNG:常用于存储透明图像
  • GIF:用于存储动画图像
  • BMP:Windows 平台上常用的图像格式
  • SVG:一种矢量图像格式,可缩放到任意大小而不失真
常用操作

读取和显示图像

from PIL import Image

# 读取图像
image = Image.open('image.jpg')

# 显示图像
image.show()

解释:

  • PIL 库(Python Imaging Library)可用于读取、处理和显示图像

压缩和保存图像

image = Image.open('image.jpg')

# 压缩图像
image.thumbnail((100, 100))

# 保存图像
image.save('thumbnail.jpg')

解释:

  • thumbnail() 函数将图像缩放到指定大小
  • save() 函数将图像保存到指定文件中