家里路由器的WiFi名称(SSID)设成了 Home-2.4G_2024-Q3#A,想从里面单独取出年份 2024 或频段标识 2.4G,手动数字符太费劲。其实只要掌握几种常见的字符串分割方法,几行操作就能搞定。
下划线和短横线是最常见的分隔符
很多路由器自动命名或人工设置时爱用 _ 或 - 来组织信息。比如 SSID 是 Office-5G_v2.1.3,想取版本号 v2.1.3,可以用 Python 的 split():
ssid = "Office-5G_v2.1.3"
parts = ssid.split("_")
version = parts[-1] # 得到 "v2.1.3"如果想按短横线切,再取第二段(频段):
band = ssid.split("-")[1].split("_")[0] # 得到 "5G"遇到井号、点号、斜杠也别慌
有些用户会把部署时间、楼层、设备编号塞进SSID,像 Floor3#AP07.net/2024。这时候可以链式拆解:
raw = "Floor3#AP07.net/2024"
floor = raw.split("#")[0] # "Floor3"
ap_id = raw.split("#")[1].split(".")[0] # "AP07"
year = raw.split("/")[-1] # "2024"注意:split() 默认按空格切,但传入指定字符后,会以该字符为界生成列表,索引 [0] 是左边第一块,[-1] 是最右边一块。
正则分割更灵活,适合混搭场景
当SSID里符号杂、规律不固定,比如 Guest@2.4GHz_2024Q3_Lobby,单靠 split() 容易出错。这时用正则更稳:
import re
s = "Guest@2.4GHz_2024Q3_Lobby"
# 按 @、_、空格任意一个切
chunks = re.split(r"[@_\s]", s) # 得到 ["Guest", "2.4GHz", "2024Q3", "Lobby"]日常调试WiFi时,经常要批量分析一堆SSID,写个简单脚本跑一遍,比手动复制粘贴快得多,也避免看花眼输错。