要对rtmp://127.0.0.1:1935/live/123:username=zenglg:password=123456
这样的非标准格式进行校验,你可以编写一个简单的函数来检查字符串是否符合预期的模式。这里是一个Python函数示例,它使用正则表达式来验证这个字符串:
python
import re
def validate_rtmp_url(url):
pattern = re.compile(
r'^rtmp://([\d.]+):(\d+)/(live)/(\w+):username=([\w]+):password=([\w]+)$'
)
match = pattern.match(url)
if match:
return {'server': match.group(1),
'port': match.group(2),
'app': match.group(3),
'username': match.group(4),
'password': match.group(5)}
else:
return False
# 测试
url_to_check = "rtmp://127.0.0.1:1935/live/123:username=zenglg:password=123456"
result = validate_rtmp_url(url_to_check)
if result:
print(f"Valid URL: {result}")
else:
print("Invalid URL format")
这个函数首先定义了一个正则表达式模式,该模式匹配IP地址、端口号、应用程序路径、用户名和密码。然后,它尝试用这个模式去匹配输入的URL。如果匹配成功,函数返回一个字典,包含解析出来的各个部分;如果匹配失败,函数返回False
。
请注意,这种格式不是标准的RTMP URL格式,而且在实际的RTMP服务器中不应该这样传递用户名和密码。在生产环境中,通常会通过安全的API调用或其他方式来验证用户身份并获取流密钥,而不是在URL中包含敏感信息。