diff --git a/lib/talk/starChart/star_chart_manage.dart b/lib/talk/starChart/star_chart_manage.dart index 75e11da7..59a6b410 100644 --- a/lib/talk/starChart/star_chart_manage.dart +++ b/lib/talk/starChart/star_chart_manage.dart @@ -894,17 +894,16 @@ class StartChartManage { /// 解析 UDP URL 并提取 IP 地址和端口号 Map _parseUdpUrl(String url) { - // 使用正则表达式匹配 IP 地址和端口号 - final regex = RegExp(r'udp://(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}):(\d+)') - .firstMatch(url); + // 修改正则表达式以匹配 IP 地址或域名 + final regex = RegExp(r'udp://([a-zA-Z0-9.-]+):(\d+)').firstMatch(url); if (regex != null) { - final ip = regex.group(1); + final host = regex.group(1); final portStr = regex.group(2); final port = int.tryParse(portStr ?? ''); - if (ip != null && port != null) { - return {'host': ip, 'port': port}; + if (host != null && port != null) { + return {'host': host, 'port': port}; } } throw FormatException('无法解析 URL 格式: $url');