【发布时间】:2020-11-22 08:07:55
【问题描述】:
我正在尝试检查字符串是否是来自 Waze Live Map 的有效深层链接。 Waze Live Map 深层链接如下所示:
https://www.waze.com/ul?place=ChIJj61dQgK6j4AR4GeTYWZsKWw&ll=37.42199990%2C-122.08405750&navigate=yes
给定一个字符串,我想知道它是否是有效的 Waze 实时地图链接。最重要的是,我想知道它是否至少有经度和纬度。
我尝试了以下方法:
String str = 'https://www.waze.com/ul?place=ChIJj61dQgK6j4AR4GeTYWZsKWw&ll=37.42199990%2C-122.08405750&navigate=yes';
var wazeUrlPattern = r"https:\/\/www.waze.com\/ul\?ll\=(.)*([1-9]+\.[1-9]+)%2C([1-9]+\.[1-9]+)(.)?";
bool valid = new RegExp(wazeUrlPattern, caseSensitive:false).hasMatch(str);
if(!valid) {
print("The url is not valid waze live map link!");
return;
}
// Do something with the longitude and latitude and maybe other parameters
这对我不起作用,我需要一些帮助来解决问题。
【问题讨论】:
-
我会尽力提供帮助,但我不知道什么是深度位智的格式。也许您可以列出一些特定的允许字符等等。或者,您似乎知道正则表达式,您遇到了什么具体的正则表达式问题?
-
另外,我不建议创建正则表达式对象并在堆栈上调用它。
-
请注意,根据developers.google.com/waze/deeplinks,始终具有
ll参数的位智深度链接(例如,它们可能具有导航收藏夹等的链接)