Регулярное выражение re2 группировки (и / или операторов)
Я изо всех сил пытаюсь получить правильное регулярное выражение для группировки диапазонов широт и долгот. Я использую фильтры Google Data Studio, которые используют re2, я считаю. Они приведены в 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]))
Я знаю, что regex в студии данных может использовать символ / или символ "труба", но мне действительно нужен символ &/ и для этой работы, но я не думаю, что смогу использовать этот символ.
Я пробовал много разных комбинаций, но я не могу понять это правильно в фильтрах Data Studio. Спасибо за любую помощь.
1 ответ
Я думаю, что я понял это. Мне нужно было объединить широту и долготу в одно регулярное выражение, а затем использовать параметры 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]).+