Регeлярные выражения python
Всем привет, долго сижу с регулярными выражениями и не могу правильно забрать данные из строки:
ymaps.ready(init);
function init () {
var myMap = new ymaps.Map("fullmap",
{
center: [53.902496, 27.561481],
zoom: 11
},
{
searchControlProvider: 'yandex#search'
}
),
myPlacemark0 = new ymaps.Placemark(
[53.92095828383601, 27.576141499999988],
{
balloonContentHeader: 'ул. Куйбышева,69,',
balloonContentBody: 'Телефон: +375172433215 ',
hintContent: 'ул. Куйбышева,69,'
}
)
myPlacemark1 = new ymaps.Placemark(
[53.91836478386761, 27.557779500000027],
{
balloonContentHeader: 'ул. Кропоткина, 72 (ювелирный центр)',
balloonContentBody: 'Телефон: +375173342686 ',
hintContent: 'ул. Кропоткина, 72 (ювелирный центр)'
}
)
myPlacemark2 = new ymaps.Placemark(
[53.85993365, 27.673879039987437],
{
balloonContentHeader: 'пр-т Партизанский, 150А (ТРЦ МОМО)',
balloonContentBody: 'Телефон: +375172702356 ',
hintContent: 'пр-т Партизанский, 150А (ТРЦ МОМО)'
}
)
myPlacemark3 = new ymaps.Placemark(
[53.86173928404149, 27.480183499999995],
{
balloonContentHeader: 'пр-т Дзержинского, 104 (ТРЦ Титан)',
balloonContentBody: 'Телефон: +375173364272 ',
hintContent: 'пр-т Дзержинского, 104 (ТРЦ Титан)'
}
)
myPlacemark4 = new ymaps.Placemark(
[53.9085033, 27.432121],
{
balloonContentHeader: 'ул. Притыцкого, 156 (ТРЦ GreenCity)',
balloonContentBody: 'Телефон: +375173195722 ',
hintContent: 'ул. Притыцкого, 156 (ТРЦ GreenCity)'
}
)
myPlacemark5 = new ymaps.Placemark(
[53.93360857063322, 27.652156500000025],
{
balloonContentHeader: 'ул. П. Мстиславца, 11 (ТРЦ DanaMall)',
balloonContentBody: 'Телефон: +375172516899 ',
hintContent: 'ул. П. Мстиславца, 11 (ТРЦ DanaMall)'
}
)
myPlacemark6 = new ymaps.Placemark(
[53.927029070645496, 27.50984549999993],
{
balloonContentHeader: 'ул.Тимирязева, 74А (ТРЦ Palazzo)',
balloonContentBody: 'Телефон: +375172274279 ',
hintContent: 'ул.Тимирязева, 74А (ТРЦ Palazzo)'
}
)
myPlacemark7 = new ymaps.Placemark(
[53.96424936324902, 27.624484716156015],
{
balloonContentHeader: 'Минск МКАД, 50-й километр Минский район, пересечение ул. Мирошниченко (ТРЦ Expobel)',
balloonContentBody: 'Телефон: +375172246252 ',
hintContent: 'Минск МКАД, 50-й километр Минский район, пересечение ул. Мирошниченко (ТРЦ Expobel)'
}
)
myPlacemark8 = new ymaps.Placemark(
[53.890245, 27.554384],
{
balloonContentHeader: 'ул.Бобруйская, 6 (ТРЦ Galileo)',
balloonContentBody: 'Телефон: +375 (17) 224 06 30 ',
hintContent: 'ул.Бобруйская, 6 (ТРЦ Galileo)'
}
)
myCollection = new ymaps.GeoObjectCollection();
myCollection.add(myPlacemark0);
myCollection.add(myPlacemark1);
myCollection.add(myPlacemark2);
myCollection.add(myPlacemark3);
myCollection.add(myPlacemark4);
myCollection.add(myPlacemark5);
myCollection.add(myPlacemark6);
myCollection.add(myPlacemark7);
myCollection.add(myPlacemark8);
myMap.geoObjects.add(myCollection);
}
Необходимо забрать данные точек, которые находятся в квадратных скобках (прим. [53.85993365, 27.673879039987437]). Пытался по разному делать например как:
re.findall('^myPlacemark0\s*=\s*new ymaps.Placemark\.$', script.string, flags=re.DOTALL | re.MULTILINE)
Ответы (1 шт):
Автор решения: nomnoms12
→ Ссылка
Вы можете использовать regEx: Placemark\(\s*\[(\d+\.?\d+),\s*(\d+\.?\d+)]
Где:
Placemark\(\s*: текст Placemark( и возможные пробельные символы после него(\d+\.?\d+): число вида 53.92095828383601
Пример:
import re
s = '...';
coords = re.findall(r'Placemark\(\s*\[(\d+\.?\d+),\s*(\d+\.?\d+)]', s)
print(coords)
stdout:
[('53.92095828383601', '27.576141499999988'), ('53.91836478386761', '27.557779500000027'), ('53.85993365', '27.673879039987437'), ('53.86173928404149', '27.480183499999995'), ('53.9085033', '27.432121'), ('53.93360857063322', '27.652156500000025'), ('53.927029070645496', '27.50984549999993'), ('53.96424936324902', '27.624484716156015'), ('53.890245', '27.554384')]