如何使用 flutter 在绘制的第三行响应中检索 url?
how to retrieve url on third line of response as drawn, using flutter?
当我想解析来自服务器的响应时遇到问题,如下所示,谁能帮我解决这个问题
如何使用 flutter 在绘制的第三行响应中检索 URL?
#EXTM3U
#EXTINF:0 tvg-logo="http://example.com/logo/" tvg-id="" ,麦德龙电视
http://127.0.0.1:8000/live/test/test/3
首先获取 String
数据类型的响应。
现在您可以通过从对列表的整个字符串响应中提取所有 url 并从该列表中获取最后一项来实现。
获取 URL 列表:
final urlRegExp = new RegExp(
r"((https?:www\.)|(https?:\/\/)|(www\.))[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9]{1,6}(\/[-a-zA-Z0-9()@:%_\+.~#?&\/=]*)?");
final urlMatches = urlRegExp.allMatches(response);
List<String> urls = urlMatches.map(
(urlMatch) => text.substring(urlMatch.start, urlMatch.end))
.toList();
现在从列表中获取最后一个元素:
print(urls[urls.length-1]);
编辑:只需使用(替代解决方案):
print(text.split('\n')[2]); // http://127.0.0.1:8000/live/test/test/3
您可以通过使用 split method offered by the LineSplittere class 其中 returns 行列表来实现此目的。
代码:
import 'dart:convert';
void main() {
String text = '''#EXTM3U
#EXTINF:0 tvg-logo="http://example.com/logo/" tvg-id="", METRO TV
http://127.0.0.1:8000/live/test/test/3''';
print(LineSplitter.split(text).toList()[2]);
}
输出:
http://127.0.0.1:8000/live/test/test/3
当我想解析来自服务器的响应时遇到问题,如下所示,谁能帮我解决这个问题
如何使用 flutter 在绘制的第三行响应中检索 URL?
#EXTM3U #EXTINF:0 tvg-logo="http://example.com/logo/" tvg-id="" ,麦德龙电视 http://127.0.0.1:8000/live/test/test/3
首先获取 String
数据类型的响应。
现在您可以通过从对列表的整个字符串响应中提取所有 url 并从该列表中获取最后一项来实现。
获取 URL 列表:
final urlRegExp = new RegExp(
r"((https?:www\.)|(https?:\/\/)|(www\.))[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9]{1,6}(\/[-a-zA-Z0-9()@:%_\+.~#?&\/=]*)?");
final urlMatches = urlRegExp.allMatches(response);
List<String> urls = urlMatches.map(
(urlMatch) => text.substring(urlMatch.start, urlMatch.end))
.toList();
现在从列表中获取最后一个元素:
print(urls[urls.length-1]);
编辑:只需使用(替代解决方案):
print(text.split('\n')[2]); // http://127.0.0.1:8000/live/test/test/3
您可以通过使用 split method offered by the LineSplittere class 其中 returns 行列表来实现此目的。
代码:
import 'dart:convert';
void main() {
String text = '''#EXTM3U
#EXTINF:0 tvg-logo="http://example.com/logo/" tvg-id="", METRO TV
http://127.0.0.1:8000/live/test/test/3''';
print(LineSplitter.split(text).toList()[2]);
}
输出:
http://127.0.0.1:8000/live/test/test/3