|
0 / 0 / 0
Регистрация: 10.02.2015
Сообщений: 7
|
|
Регулярные выражения10.02.2015, 09:36. Показов 1513. Ответов 14
Метки нет (Все метки)
Доброе время суток!
Есть входной файл следующего вида: LL(1)= 30, 30, 14, 20, 18, 18, 18, 18, 18, 18, 20, 23, 21, 27, 18, 12, 22, 18, 18, 18, 12, 12, 21, 24, 22, 21, 18, 18, 18, 18, 18, 21, 36, 62, 20, 20, 20, 20, 20, 20, 30, 30, 30, 22, 12, 21, 18, 22, 34, 17, 52, 21, 34, 30, 30, 46, 18, INA(1,1)= 1450, 1491, 1538, 1590, 1650, 1651, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1633, 1678, 1680, 1679, 1632, 1631, 1573, 1520, 1519, 1518, 1475, 1454, 1453, 1452, 1451, INA(1,2)= 1590, 1538, 1589, 1648, 1694, 1734, 1765, 1791, 1817, 1846, 1874, 1906, 1935, 1956, 1957, 1958, 1959, 1938, 1909, 1877, 1849, 1850, 1821, 1822, 1796, 1768, 1737, 1697, 1651, 1650, INA(1,3)= 2875, 2843, 2878, 2915, 2941, 2963, 2984, 2985, 2986, 2962, 2940, 2913, 2910, 2876, INA(1,4)= 2919, 2881, 2918, 2942, 2964, 2987, 2989, 3007, 3026, 3045, 3063, 3078, 3077, 3064, 3046, 3027, 3008, 2990, 2966, 2944, INA(1,5)= 2714, 2678, 2713, 2750, 2779, 2807, 2809, 2837, 2869, 2907, 2937, 2936, 2908, 2870, 2838, 2810, 2781, 2752, INA(1,6)= 2506, 2531, 2560, 2563, 2564, 2593, 2622, 2657, 2690, 2724, 2725, 2726, 2692, 2659, 2624, 2595, 2566, 2533, INA(1,7)= 2283, 2280, 2282, 2309, 2333, 2357, 2380, 2405, 2431, 2457, 2456, 2455, 2429, 2403, 2378, 2355, 2334, 2310, Каким образом лучше извлечь данные в массив? Попытался с помощью регулярных выражений, но имею мало опыта в данной теме
0
|
|
| 10.02.2015, 09:36 | |
|
Ответы с готовыми решениями:
14
регулярные выражения Регулярные выражения |
|
Жуткая тВарЬ
|
||||||
| 10.02.2015, 10:00 | ||||||
|
Вот пример
Так, только там маленький косячОкс, щас исправлю! Добавлено через 5 минут Патерн вот такой: @"[^\(]\d+(?=,)"
1
|
||||||
|
0 / 0 / 0
Регистрация: 10.02.2015
Сообщений: 7
|
|
| 10.02.2015, 10:22 [ТС] | |
|
а если во входном файле есть следующие данные
MC(1,1)= 11665,11666,11650,11653,11652,11667,1166 8,11653,11667,11669,11653,11668, 11669,11654,11653,11670,11654,11669,1167 0,11655,11654,11659,11671,11662, 11660,11671,11659,11660,11672,11671,1166 0,11673,11672,11660,11661,11673, 11671,11674,11662,11675,11664,11663,1167 7,11663,11676,11675,11663,11677, 11675,11678,11664,11678,11665,11664,1167 8,11679,11665,11679,11666,11665, или X(1)= 1.400047, 1.400047, 1.400047, 2.148074, 2.200047, 2.680472, 2.972593, 2.400047, 2.993172, 3.000047, 3.951392, 3.823456, 4.179133, 3.821993, 4.600047, 5.252652, 4.800047, 4.600047, 5.958219, 6.600047, 6.000047, 7.330951, 7.737305, 7.858330, 7.200047, 8.507631, 8.676746, 9.332604, 8.225936, 7.400047, 9.947387, 9.400047, 10.457926, 11.181254, 9.343665, 8.257925, 7.400047, 12.023626, 11.860246, 10.590824, 13.187727, 9.196772, 8.000047, 14.647204, 13.830581, 11.939912, 10.809251, 15.531817, 9.412649, 8.000047, 17.270782, 14.842499, 16.331057, 12.662271, 11.109754, 17.923552, 8.000047, 9.500047, 19.894361, 17.063704, 13.389144, 15.778240, 18.441940, 11.000047, 20.115051, 22.666330, 22.029591, 18.904118, 18.167337, 20.335743, 24.202990, 25.409634, 24.164818, 20.556435, 24.109314, 27.296085, 27.516466, 26.300047, 27.607155, 24.849819, 27.414814, 30.333046, 30.155354, 29.400047, 29.143208, ?
0
|
|
|
Жуткая тВарЬ
|
|
| 10.02.2015, 11:32 | |
Сообщение было отмечено nikolay_avid как решение
Решение
@"[^\(]\d+[,.]{0,1}\d*(?=,)" попробуйте должно работать
Добавлено через 1 минуту [,.] - говорит о том что в качестве разделителя может быть и точка и запятая - но по хорошему лучше оставьте только точку
1
|
|
|
0 / 0 / 0
Регистрация: 10.02.2015
Сообщений: 7
|
|
| 10.02.2015, 11:42 [ТС] | |
|
чтение дробного числа проходит нормально, но вот целые пятизначные читает с запятой(
0
|
|
|
307 / 284 / 102
Регистрация: 06.05.2014
Сообщений: 861
|
||||||
| 10.02.2015, 11:45 | ||||||
|
nikolay_avid, попробуй так:
0
|
||||||
|
307 / 284 / 102
Регистрация: 06.05.2014
Сообщений: 861
|
|||||||
| 10.02.2015, 12:03 | |||||||
|
nikolay_avid, правда это для целых чисел. Т.к. если будет дробным, то нужно определяться какого типа создавать массив - int или всё же double. Пойду подумаю....
Добавлено через 14 минут Если нужно просто регулярка, которая вытащит все числа (целые и дробные) в один массив, то правильнее будет сделать так:
0
|
|||||||
|
Жуткая тВарЬ
|
||
| 10.02.2015, 12:13 | ||
|
Во первых в нем есть просмотр вперед и вот такое 2., .3939939 Вы не получите, а вот это a.83939359 тем более, да есть косяк, но он просто исправляется @"[^\(]\d+(\.\d+){0,1}(?=,)" Добавлено через 1 минуту Но по логике не должно быть вот таких чисел 1.54393939.292929.393939.393939 - мы же не произвольный текст разбираем
0
|
||
|
0 / 0 / 0
Регистрация: 10.02.2015
Сообщений: 7
|
|
| 10.02.2015, 12:18 [ТС] | |
|
данные типа
11665,11666,11650,11653,11652,11667,1166 8,11653,11667,11669,11653,11668, 11669,11654,11653,11670,11654,11669,1167 0,11655,11654,11659,11671,11662, 11660,11671,11659,11660,11672,11671,1166 0,11673,11672,11660,11661,11673, 11671,11674,11662,11675,11664,11663,1167 7,11663,11676,11675,11663,11677, 11675,11678,11664,11678,11665,11664,1167 8,11679,11665,11679,11666,11665, он читает с запятой
0
|
|
|
Жуткая тВарЬ
|
|
| 10.02.2015, 12:19 | |
|
Да и вообще в этой задачи регулярками лучше не пользоваться - если структура входящих данных будет все время такая, то не смысла медленными регулярными выражениями теранить текст, проще выполнить замены и сплитом разбить на значения, исключив название функции по признаку содержания в значении скобок
0
|
|
|
0 / 0 / 0
Регистрация: 10.02.2015
Сообщений: 7
|
|
| 10.02.2015, 12:21 [ТС] | |
|
можете пример привести?
0
|
|
|
307 / 284 / 102
Регистрация: 06.05.2014
Сообщений: 861
|
|
| 10.02.2015, 12:22 | |
|
amarf, с буквенным символом перед точкой я погорячился, а вот перед числом (a13.214234) - отнюдь. Также то, что Ваш паттерн пережёвывает и вот такие значения: .3003, 1.322342.2342342, 1., - это 100%. Вторая (последняя Вами предложенная) ничем не лучше.
0
|
|
|
Жуткая тВарЬ
|
|
| 10.02.2015, 12:23 | |
|
Такие да с запятой, но у старапера данные с пробелом между числами!
Вариант @"(?!<[, ])\d+(\.\d+){0,1}(?=,)" BozKurt, Короче дело к ночи - давайте помогать человеку а не выяснять кто лучше или хуже. Я Ваши замечания принял к сведению и полностью согласен с ними
0
|
|
|
307 / 284 / 102
Регистрация: 06.05.2014
Сообщений: 861
|
||||||
| 10.02.2015, 12:32 | ||||||
|
Действительно, можно пример того, как из текстового файла, в котором по мимо нужных нам чисел, имеется ещё и произвольный текст, вытащить исключительно числа? И будет ли такой метод быстрее предложенного мной вот здесь: Регулярные выражения
Добавлено через 8 минут Вот готовое решение:
0
|
||||||
| 10.02.2015, 12:32 | |
|
Помогаю со студенческими работами здесь
15
Регулярные выражения Регулярные выражения Регулярные выражения Регулярные выражения Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|