Модераторы: ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> разбор строки большее число совпадений 
:(
    Опции темы
z911
Дата 30.12.2009, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 30.12.2009

Репутация: нет
Всего: нет



есть строки вида
Data=(99.237350,88.640575),(99.237422,88.640598),(99.237438,88.640491),(94.237365,88.640468),(99.235298,88.630493) 

представляет собой данные полигона
количество узлов полигона (то что в скобках) произвольно
необходимо отловить только строки где ровно четыре узла


if ((m/(Data=\(.*?\),\(.*?\),\(.*?\),\(.*?\))/))) ...

сравниваю так,  но отлавливаются строки в которых четыре и более узла. Добавление в конец \n не помогает.
кроме того, как изящно сразу сделать приравнивание переменных x1,y1  x2,y2 x3,y3 x4,y4 разбираемых данных (те что в скобках) 
PM MAIL   Вверх
patap
Дата 30.12.2009, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 893
Регистрация: 7.5.2005
Где: Украина, Зп

Репутация: нет
Всего: 40



Код
Data=(\(\d+\.\d+,\d+\.\d+\),?){4}$


или так, по идее должно вернуть x1,y1,x2,y2.....
Код
Data=\((\d+\.\d+),(\d+\.\d+)\),\((\d+\.\d+),(\d+\.\d+)\),\((\d+\.\d+),(\d+\.\d+)\),\((\d+\.\d+),(\d+\.\d+)\),?$


Это сообщение отредактировал(а) patap - 30.12.2009, 17:49


--------------------
На боку кобура болталась, сзади шашка отцовская звякала. 
Впереди меня все хохотало, а позади все плакало (с)
PM MAIL ICQ   Вверх
Stark
Дата 4.1.2010, 00:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 18.2.2008

Репутация: нет
Всего: 1



Цитата(patap @ 30.12.2009,  17:36)
Код
Data=(\(\d+\.\d+,\d+\.\d+\),?){4}$


или так, по идее должно вернуть x1,y1,x2,y2.....
Код
Data=\((\d+\.\d+),(\d+\.\d+)\),\((\d+\.\d+),(\d+\.\d+)\),\((\d+\.\d+),(\d+\.\d+)\),\((\d+\.\d+),(\d+\.\d+)\),?$

такой вариант подходит если строка состоит только со строк подобного вида. Мне кажется лучше использовать негативную опережающую проверку
Код

Data=(\(\d+\.\d+,\d+\.\d+\)?){4}(?!,)$

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Регулярные выражения | Следующая тема »


 




[ Время генерации скрипта: 0.1122 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.