![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 28.10.2009
Сообщений: 38
|
![]()
Всем доброго дня! прошу помочь в решении задачи по извлечению данных из строки при помощи регулярных выражений.
Дано: Есть большое количество строк, содержащих описания серверов. В каждой такой строке встречается подстрока вида /XxYGbAB/, где: X - количество модулей памяти, установленных в сервер; Y - ёмкость одного модуля памяти; AB - тип памяти. Может принимать значения "RD", "UD" или "R2D" Данное заклинание отделено от остальных данных косыми чертами. Например (часть строки опущена): ProLiant DL320G6 E5520 (1URack X2,26GHzQuadCore/8Mb/2x2GbUD/P... ProLiant DL320G6 L5609 (1URack X1,86GHzQuadCore/12Mb/2x2GbUD/... ProLiant DL320G6 E5630 RPS (1URack X2,53GHzQCore/12Mb/3x2GbRD/... ProLiant DL320G6 E5503 (1URack X2,0GHzDualCore/4Mb/2x2GbRD/4po... ProLiant DL320G6 E5603 (1URack X1,66GHzQuadCore/4Mb/2x2GbRD/S... Proliant ML330T06 E5606 LFF (Tower XeonQC 2.13GHz(8Mb)/2x2GbUD/... Proliant DL360R07 E5620 (Rack1U XeonQC 2.4Ghz(12Mb)/3x4GbR2D/P4... Прошу помочь в написании функции, которая принимала на вход строку, а возвращала бы три значения: количество модулей, их объём и тип. Пробовал писать с помощью классического InStr, получается очень долго и как-то коряво. Я даже написал регулярное выражение, которое ищет подстроку: "\d[x]\dGb[RU]2?[D]" Последний раз редактировалось Meta2; 03.09.2011 в 19:31. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 06.08.2009
Сообщений: 472
|
![]()
добрый день, Meta2, см. вложение, код "test"
Последний раз редактировалось EugeneS; 03.09.2011 в 19:51. |
![]() |
![]() |
![]() |
#3 |
Участник клуба
Регистрация: 16.05.2010
Сообщений: 1,249
|
![]()
Я без особых выражений (настроение хорошее )
![]() |
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 28.10.2009
Сообщений: 38
|
![]()
А я уже сам разобрался с регулярным выражением и написал готовый скрипт
![]() Код:
Последний раз редактировалось Meta2; 03.09.2011 в 20:53. |
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 31.12.2010
Сообщений: 2,133
|
![]()
Хорошо, но подстроки можно выделить за один раз - это то, что Вы берете в круглые скобки:
Код:
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Очень удобная тестилка регулярных выражений (совершенно бесплатно))) | alexplato | Софт | 4 | 02.01.2011 13:06 |
Вопрос по использованию регулярных выражений А здесь смотрели? | alexplato | Общие вопросы .NET | 2 | 14.12.2010 20:33 |
Процедура для извлечения ресурса | foxes | Общие вопросы Delphi | 3 | 02.05.2010 20:02 |