|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
03.09.2011, 19:15 | #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. |
03.09.2011, 19:39 | #2 |
Форумчанин
Регистрация: 06.08.2009
Сообщений: 472
|
добрый день, Meta2, см. вложение, код "test"
Последний раз редактировалось EugeneS; 03.09.2011 в 19:51. |
03.09.2011, 20:34 | #3 |
Участник клуба
Регистрация: 16.05.2010
Сообщений: 1,249
|
Я без особых выражений (настроение хорошее ) написал формулы. Вдруг кому пригодятся.
|
03.09.2011, 20:47 | #4 |
Пользователь
Регистрация: 28.10.2009
Сообщений: 38
|
А я уже сам разобрался с регулярным выражением и написал готовый скрипт
Код:
Последний раз редактировалось Meta2; 03.09.2011 в 20:53. |
04.09.2011, 18:18 | #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 |