Имя: Пароль:
IT
 
regexp - подскажите.
0 DES
 
07.07.13
14:17
не дается это регекс никак.
есть
(((46.854404 28.119717,46.887772 28.115826,46.920273 28.10638,46.973877 28.084721,46.980537 28.08194,46.983597 28.07972)(46.980537 28.08194,46.983597 28.07972)))

Это 2 массива в скобках, может быть много массивов.
Как разобрать один первый массив, потом второй и т.д ?
Понятно, что не в одном regexp можно сделать, намекните плиз.
1 МихаилМ
 
07.07.13
14:20
)( заменить на конец строки
пробел - ";"

остальные скобки убрать
далее
для каждой строки
строка в массив
2 DES
 
07.07.13
14:30
спс
3 DES
 
07.07.13
14:49
а как в regexp указать паттерн #)(#  &
4 Aleksey
 
07.07.13
15:24
СтрокаЦифр = (((46.854404 28.119717,46.887772 28.115826,46.920273 28.10638,46.973877 28.084721,46.980537 28.08194,46.983597 28.07972)(46.980537 28.08194,46.983597 28.07972)));

Строки = СтрЗаменить(СтрокаЦифр,")(",Символы.ПС);
Строки = СтрЗаменить(Строки,","," ");
Строки = СтрЗаменить(Строки,"(","");
Строки = СтрЗаменить(Строки,")","");
   
СписокМассивов = Новый Массив;
   
Для Ном = 1 По СтрЧислоСтрок(Строки) Цикл
  МассивВСкобках = Новый массив;
  МассивВскобкахСтрокой = СтрПолучитьСтроку(Строки,Ном);
       
  МассивВскобкахСтрокой = СтрЗаменить(МассивВскобкахСтрокой," ",Символы.ПС);
  Для СчетчикСтрокВМассиве = 1 По СтрЧислоСтрок(МассивВскобкахСтрокой) Цикл
     МассивВСкобках.Добавить(СтрПолучитьСтроку(МассивВскобкахСтрокой,СчетчикСтрокВМассиве));
  КонецЦикла;
  СписокМассивов.Добавить(МассивВСкобках);
КонецЦикла;
5 Aleksey
 
07.07.13
15:29
В результате получится массив каждая строка которого представляет собой массив цифр находящихся в скобках

Единственное что не понятно, все цифры записываются парами, разделенными ",", т.е. похожи на пару каких то координат
6 DES
 
07.07.13
15:48
да нет,
на 1С я и сам могу черта лысого замутить...
мне бы на regexp все это (PHP так сказать....)
7 kokamoonga
 
07.07.13
15:55
(0) откуда берется строка?
8 DES
 
07.07.13
16:06
SQL
9 kokamoonga
 
07.07.13
16:08
\(((\d{2}\.\d{5,6} \d{2}\.\d{5,6}(,|))+)\)   как-то так
10 kokamoonga
 
07.07.13
16:09
(9) +  с форматом чисел уж сам разберись \d{2}\.\d{5,6}
11 DES
 
07.07.13
18:14
спс.
формат там переменчивый, число может быть 0 или 99.9999999999999999
12 DES
 
07.07.13
18:16
если бы можно было вырезать первое число от скобки до пробела
а второе от пробела до скобки было бы нормально.
а еще, как вырезать часть строки от начала одной подстроки до конца другой?
из "123фыв_____...___чня321" нужно получить  "ыв_____...___чн"
13 kokamoonga
 
07.07.13
18:33
(12) ну вырезать число от скобки до пробела и так далее это еще проще. просто забери их в скобки и это будет подвыражение. типа  (\d{2}\.\d{5,6})
14 kokamoonga
 
07.07.13
18:57
>>> от начала одной подстроки до конца другой?
из "123фыв_____...___чня321" нужно получить  "ыв_____...___чн"


123ф(ыв_____\.\.\.___чн)я321
15 Ковычки
 
07.07.13
19:03
x='(((46.854404 28.119717,46.887772 28.115826,46.920273 28.10638,46.973877 28.084721,46.980537 28.08194,46.983597 28.07972)(46.980537 28.08194,46.983597 28.07972)))';
WScript.Echo(x.match(/(\d+\.\d+(,\d+\.\d+)*?)[^\d,]+/g).length);
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан