startswith() 函数
概述
- startswith() 是 Python 字符串方法,用于检查字符串是否以指定的前缀开头。
- 常用于字符串匹配或验证操作。
语法
str.startswith(prefix[, start[, end]])
- 参数:
- prefix(必需):要匹配的前缀,可以是字符串或元组(包含多个前缀)。
- start(可选):检查的起始索引(默认为字符串开头)。
- end(可选):检查的结束索引(默认为字符串末尾)。
- 返回值:
- 如果字符串以指定的前缀开头,返回
True
;否则返回False
。
- 如果字符串以指定的前缀开头,返回
用法示例
1. 基本使用
text = "Hello, Python!"
# 检查是否以 "Hello" 开头
print(text.startswith("Hello")) # 输出: True
# 检查是否以 "Python" 开头
print(text.startswith("Python")) # 输出: False
2. 指定起始和结束位置
text = "Hello, Python!"
# 从索引 7 开始检查是否以 "Python" 开头
print(text.startswith("Python", 7)) # 输出: True
# 从索引 7 到索引 10 检查
print(text.startswith("Pyt", 7, 10)) # 输出: True
# 从索引 7 到索引 9 检查
print(text.startswith("Python", 7, 9)) # 输出: False
3. 检查多个前缀
- 使用元组作为
prefix
,可以同时检查多个前缀。
text = "example_file.txt"
# 检查是否以 "ex" 或 "test" 开头
print(text.startswith(("ex", "test"))) # 输出: True
# 检查是否以 "txt" 或 "file" 开头
print(text.startswith(("txt", "file"))) # 输出: False
4. 忽略大小写
- 结合字符串的 lower() 或 upper() 方法,忽略大小写。
text = "Hello, Python!"
# 忽略大小写检查
print(text.lower().startswith("hello")) # 输出: True
应用场景
-
文件名验证
filename = "example.csv" if filename.startswith("example"): print("文件名有效")
-
URL 校验
url = "https://example.com" if url.startswith(("http://", "https://")): print("这是一个有效的 URL")
-
日志过滤
log_line = "[INFO] System started." if log_line.startswith("[INFO]"): print("这是信息日志")
注意事项
- 元组匹配时顺序无关
- 如果指定的前缀是元组,会依次检查每个前缀是否匹配。
- 范围超出时
- 如果
start
或end
超出字符串范围,startswith
不会抛出错误,而是返回False
。
- 如果
小结
- startswith() 是一个高效且灵活的字符串匹配工具。
- 支持单个前缀、多个前缀、指定范围等多种用法,非常适合处理文本、文件名或日志过滤等场景。