![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
2 the Nation Glory
Старожил
Регистрация: 27.05.2014
Сообщений: 3,289
|
![]()
Хочу понять регулярные выражения. Почитал http://stackoverflow.com/questions/2...cell-and-loops
Темный лес ![]() Для обучения я взял таблицу и хочу привести ее к виду, например для первого номер, +38 (067) 111 22 33 Код HTML:
(067)1112233 (044)*111-22-33 (0332)123456, 123457 (048)1234567, 123456 (0342)122156 +38 (0522) 12-43-56 0372-123456 (0512)654321 (066)1234567;(067)1234567 +38 (050) 111-22-33 773332211 (067)5556677 (067)9998877 Для первой записи решил что pattern должен быть "( [(] [0-9]{3} [)]) ([0-9]{3}) ([0-9]{2}) ([0-9]{2})" Код:
Код HTML:
(048)1234567, 123456 => +38 (048) 123 45 67,123456 (066)1234567;(067)1234567 => +38 (066) 123 45 67;+38 (067) 123 45 67 (067)5556677 (067)9998877 => +38 (067) 555 66 77+38 (067) 999 88 77 Вообщем, прошу подтолкнуть алгоритмом и в синтаксисе регулярных выражений.
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы. |
![]() |
![]() |
![]() |
#2 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]()
с такими данными, где может быть несколько номеров в строке (через запятую, через точку с запятой, или вообще без разделителя), где второй и последующий номера могут быть в кратком формате (без кода города), - регуляркой одной лишь никак не справиться
сначала макрос, который приведет все данные в нормальный формат (все номера с одним количеством цифр, через единый разделитель), а потом скобочки и пробелы и префикс добавить, - это легко (хоть регуляркой, хоть форматом числа, хоть простыми функциями VBA) Но, начинать в любом случае надо с макроса, который уберет все лишние символы, допишет коды городов к тем номерам, где их нет, все разделители (запятые) между номерами проставит |
![]() |
![]() |
![]() |
#3 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
![]()
написание масок - это практически язык программирования
синтаксис простой, но нужно практиковаться... чем разношерстнее данные - тем сложнее придумать универсальную маску под них Удачи!
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 16.06.2015
Сообщений: 100
|
![]()
добрый вечер,попробовал,Вам помочь в виде трех версий,чтобы Вам было легче проследить процесс улучшения макроса,полностью доделывать не стал ,если Вас интересует могу доделать,в соответствии с разумными замечаниями предыдущих участников обсуждения.
Код:
Код:
Код:
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Регулярные выражения | ACE Valery | Общие вопросы .NET | 12 | 14.04.2015 11:59 |
Регулярные выражения для парсинга | alexzubarev99 | Помощь студентам | 0 | 06.05.2014 21:07 |
регулярные выражения | Gen_r_questions | PHP | 15 | 25.04.2011 11:56 |
регулярные выражения для поиска и замены | Елена Гох | Microsoft Office Access | 7 | 18.01.2011 19:39 |
регулярные выражения для постраничной навигации | ilma55 | PHP | 4 | 16.03.2010 11:26 |