正则表达式re2分组(和/或运算符)

问题描述 投票:0回答:1

我正在努力获得正确的正则表达式来分组纬度和经度范围。我正在使用使用re2的Google Data Studio过滤器,我相信。这些是在URL中给出的,所以我试图仅过滤掉我感兴趣的不规则形状域中的纬度/经度对。如果它是一个方形域,我可以很容易地做到这一点因为有一组lat与一组lon相对应。

这就是我想要做的事情:

If latitude is in this range: Latitude 39\.[4-9]|Latitude 40\.[0-9]|Latitude 41\.[0-5]  AND longitude is in this range: Longitude 80\.[0-5]|Longitude 79\.[0-9]  (then capture these URLs)

或者如果

latitude is in this range: Latitude 40\.[0-7]|Latitude 39\.[6-9] AND longitude in this range: Longitude 82\.[2-9]|Longitude 81\.[0-9]|Longitude 80\.[0-5] (then capture these URLs)

这是我应该能够做到的感觉,但语法不起作用:

((Latitude 39\.[4-9]|Latitude 40\.[0-9]|Latitude 41\.[0-5]) & (Longitude 80\.[0-5]|Longitude 79\.[0-9]))|((Latitude 40\.[0-7]|Latitude 39\.[6-9])&(Longitude 82\.[2-9]|Longitude 81\.[0-9]|Longitude 80\.[0-5]))

我知道数据工作室正则表达式可以使用管道/或符号,但我真的需要&/和符号来使这项工作,但我不认为我可以使用该符号。

我尝试了很多不同的组合,但我无法在Data Studio过滤器中完全正确。谢谢你的帮助。

regex google-data-studio
1个回答
0
投票

我想我明白了。我需要将纬度和经度组合成一个正则表达式,然后使用Google的Data Studio选项使用“或”,然后放入下一个表达式。

以下是两个表达式,它们通过。{2,3}部分考虑纬度和经度的第二个小数点(如果存在)。

.+for Latitude (39\.[4-9]|40\.[0-9]|41\.[0-5]).{2,3} and Longitude (80\.[0-5]|79\.[0-9]).+

.+for Latitude (40\.[0-7]|39\.[6-9]).{2,3} and Longitude (82\.[2-9]|81\.[0-9]|80\.[0-5]).+
© www.soinside.com 2019 - 2024. All rights reserved.