|
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); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |