Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Поговорим про RegExp? - Страница 12 - Мир MS Excel

Старая форма входа
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Поговорим про RegExp? (Подготовка для топика FAQ по RegExp в Готовых решениях)
Поговорим про RegExp?
ikki Дата: Воскресенье, 23.09.2012, 22:26 | Сообщение № 221
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
я смотрю, вы тут о-очень далеко вперёд ушли smile
но мне пока вот этот пример по зубам:
Quote (nerv)
Задача №1 (с планеты). Выделить из текста номера артикулов и их количество. Артикул - это шесть цифр, перед кот. стоит дефис, а перед дефисом еще три лат. буквы.

разве не корректнее будет вместо
[vba]
Code
.Pattern = IIf(z, "\d+\W+(?:\.|$)", ".{4}\d{6}")
[/vba]
написать
[vba]
Code
.Pattern = IIf(z, "\d+\W+(?:\.|$)", "[A-Z]{3}-\d{6}")
[/vba]
?


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
Сообщениея смотрю, вы тут о-очень далеко вперёд ушли smile
но мне пока вот этот пример по зубам:
Quote (nerv)
Задача №1 (с планеты). Выделить из текста номера артикулов и их количество. Артикул - это шесть цифр, перед кот. стоит дефис, а перед дефисом еще три лат. буквы.

разве не корректнее будет вместо
[vba]
Code
.Pattern = IIf(z, "\d+\W+(?:\.|$)", ".{4}\d{6}")
[/vba]
написать
[vba]
Code
.Pattern = IIf(z, "\d+\W+(?:\.|$)", "[A-Z]{3}-\d{6}")
[/vba]
?

Автор - ikki
Дата добавления - 23.09.2012 в 22:26
Alex_ST Дата: Воскресенье, 23.09.2012, 23:31 | Сообщение № 222
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3209
Репутация: 609 ±
Замечаний: 0% ±

2003
Я так и не проникся RegExp'ами настолько чтобы их начать юзать без принуждения под страхом смерти...
Ну, не знаю я их!
Это, наверное, как совершенно ни на что не похожий и ассоциативно не понятный иностранный язык - если нет практики, то забываешь изученное через пару недель напрочь.
Так что, ikki, не нервничай, жди nerv'a biggrin
Володя-то совсем запропал. А Саша хоть появляется здесь.



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеЯ так и не проникся RegExp'ами настолько чтобы их начать юзать без принуждения под страхом смерти...
Ну, не знаю я их!
Это, наверное, как совершенно ни на что не похожий и ассоциативно не понятный иностранный язык - если нет практики, то забываешь изученное через пару недель напрочь.
Так что, ikki, не нервничай, жди nerv'a biggrin
Володя-то совсем запропал. А Саша хоть появляется здесь.

Автор - Alex_ST
Дата добавления - 23.09.2012 в 23:31
ikki Дата: Воскресенье, 23.09.2012, 23:52 | Сообщение № 223
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
я не нервничаю smile
я фридла читаю.


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
Сообщениея не нервничаю smile
я фридла читаю.

Автор - ikki
Дата добавления - 23.09.2012 в 23:52
KuklP Дата: Понедельник, 24.09.2012, 09:16 | Сообщение № 224
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Quote (ikki)
разве не корректнее будет вместо

Корректней. Все правильно. Просто авторы посчитали достаточным и такой образец(pattern). Ты в следующий раз хоть номер поста приводи, к-рый цитируешь. А то в топике уже 5 страниц, просматривать все лениво:)


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
Сообщение
Quote (ikki)
разве не корректнее будет вместо

Корректней. Все правильно. Просто авторы посчитали достаточным и такой образец(pattern). Ты в следующий раз хоть номер поста приводи, к-рый цитируешь. А то в топике уже 5 страниц, просматривать все лениво:)

Автор - KuklP
Дата добавления - 24.09.2012 в 09:16
ikki Дата: Понедельник, 24.09.2012, 10:01 | Сообщение № 225
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
сорри.
еще не до конца освоился.
на некоторых форумах цитирование включает какую-нибудь стрелочку-гульку, по которой можно перейти к соответствующему посту.
(кстати, ни разу не пользовался).
на этом, видимо, нету. или Серж отрубил.


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
Сообщениесорри.
еще не до конца освоился.
на некоторых форумах цитирование включает какую-нибудь стрелочку-гульку, по которой можно перейти к соответствующему посту.
(кстати, ни разу не пользовался).
на этом, видимо, нету. или Серж отрубил.

Автор - ikki
Дата добавления - 24.09.2012 в 10:01
Serge_007 Дата: Понедельник, 24.09.2012, 10:12 | Сообщение № 226
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (ikki)
на некоторых форумах цитирование включает какую-нибудь стрелочку-гульку, по которой можно перейти к соответствующему посту.
(кстати, ни разу не пользовался).
на этом, видимо, нету. или Серж отрубил.

Ничего я не отрубал smile
Просто делается это немного не так. См. картинки



Получилась ссылка (пост 221):
http://www.excelworld.ru/forum/2-1017-26725-16-1348424790
К сообщению приложен файл: 9452727.gif (15.1 Kb) · 9708151.gif (28.1 Kb)


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (ikki)
на некоторых форумах цитирование включает какую-нибудь стрелочку-гульку, по которой можно перейти к соответствующему посту.
(кстати, ни разу не пользовался).
на этом, видимо, нету. или Серж отрубил.

Ничего я не отрубал smile
Просто делается это немного не так. См. картинки



Получилась ссылка (пост 221):
http://www.excelworld.ru/forum/2-1017-26725-16-1348424790

Автор - Serge_007
Дата добавления - 24.09.2012 в 10:12
ikki Дата: Понедельник, 24.09.2012, 10:23 | Сообщение № 227
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
не-е-е, Серж, там прям как-то движок поддерживает именно в теге quote
автоматически то есть. ничего дополнительно жмакать не надо.
типа... лёгким движением... брюки превращаются... ну и т.д.

но, во-первых, это всё фигня из категории рюшечек. на форуме главное содержание, а оно здесь на высоте.
а, во-вторых, предложенный способ - тоже вариант. буду пользовать (если не забуду :)).


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
Сообщениене-е-е, Серж, там прям как-то движок поддерживает именно в теге quote
автоматически то есть. ничего дополнительно жмакать не надо.
типа... лёгким движением... брюки превращаются... ну и т.д.

но, во-первых, это всё фигня из категории рюшечек. на форуме главное содержание, а оно здесь на высоте.
а, во-вторых, предложенный способ - тоже вариант. буду пользовать (если не забуду :)).

Автор - ikki
Дата добавления - 24.09.2012 в 10:23
nerv Дата: Понедельник, 24.09.2012, 12:58 | Сообщение № 228
Группа: Редакторы
Ранг: Обитатель
Сообщений: 431
Репутация: 193 ±
Замечаний: 0% ±

Quote (ikki)
я смотрю, вы тут о-очень далеко вперёд ушли

вперед паровоза-Алекса biggrin
Quote (ikki)
разве не корректнее будет вместо

все зависит от контекста. Иногда (мягко сказано) в задаче звучит одно, по факту другое.
Quote (ikki)
я фридла читаю.

вот это правильно wink
Quote (Alex_ST)
Володя-то совсем запропал.

безобразник cool
Quote (KuklP)
Ты в следующий раз хоть номер поста приводи, к-рый цитируешь.

да
Quote (ikki)
на некоторых форумах цитирование включает какую-нибудь стрелочку-гульку, по которой можно перейти к соответствующему посту.

здесь тоже можно так сделать. Хотя, обычно в цитатах ставиться дата
Quote (ikki)
на форуме главное содержание

я бы поспорил. Даже если содержание на высоте, попугая читать мягко говоря не удобно. На днях видел сайт с анимированным фоном. Ужасно. В глазах рябит.


Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


YM 41001156540584 / WM WMR R21924176233

https://github.com/nervgh/vba


Сообщение отредактировал nerv - Понедельник, 24.09.2012, 12:59
 
Ответить
Сообщение
Quote (ikki)
я смотрю, вы тут о-очень далеко вперёд ушли

вперед паровоза-Алекса biggrin
Quote (ikki)
разве не корректнее будет вместо

все зависит от контекста. Иногда (мягко сказано) в задаче звучит одно, по факту другое.
Quote (ikki)
я фридла читаю.

вот это правильно wink
Quote (Alex_ST)
Володя-то совсем запропал.

безобразник cool
Quote (KuklP)
Ты в следующий раз хоть номер поста приводи, к-рый цитируешь.

да
Quote (ikki)
на некоторых форумах цитирование включает какую-нибудь стрелочку-гульку, по которой можно перейти к соответствующему посту.

здесь тоже можно так сделать. Хотя, обычно в цитатах ставиться дата
Quote (ikki)
на форуме главное содержание

я бы поспорил. Даже если содержание на высоте, попугая читать мягко говоря не удобно. На днях видел сайт с анимированным фоном. Ужасно. В глазах рябит.

Автор - nerv
Дата добавления - 24.09.2012 в 12:58
Alex_ST Дата: Понедельник, 24.09.2012, 13:23 | Сообщение № 229
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3209
Репутация: 609 ±
Замечаний: 0% ±

2003
Quote (nerv)
здесь тоже можно так сделать. Хотя, обычно в цитатах ставиться дата

я уже приставал к Сержу с такими просьбами в "Вопросах по работе форума" и он мне ответил, что это на кривой ЮКозе не объедешь biggrin



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
Сообщение
Quote (nerv)
здесь тоже можно так сделать. Хотя, обычно в цитатах ставиться дата

я уже приставал к Сержу с такими просьбами в "Вопросах по работе форума" и он мне ответил, что это на кривой ЮКозе не объедешь biggrin

Автор - Alex_ST
Дата добавления - 24.09.2012 в 13:23
KuklP Дата: Понедельник, 24.09.2012, 17:23 | Сообщение № 230
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Е-мое, мое легкое замечание вызвало такой шквал полемики surprised Да Бог с ним, На Планете гораздо меньше удобств, а привыкли же smile Я извиняюсь, друзья. Все нормально, отличный сайт. Все остальное в "Вопросы по работе форумов".


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728


Сообщение отредактировал KuklP - Понедельник, 24.09.2012, 17:26
 
Ответить
СообщениеЕ-мое, мое легкое замечание вызвало такой шквал полемики surprised Да Бог с ним, На Планете гораздо меньше удобств, а привыкли же smile Я извиняюсь, друзья. Все нормально, отличный сайт. Все остальное в "Вопросы по работе форумов".

Автор - KuklP
Дата добавления - 24.09.2012 в 17:23
Alex_ST Дата: Четверг, 27.09.2012, 13:23 | Сообщение № 231
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3209
Репутация: 609 ±
Замечаний: 0% ±

2003
К стати, народ, вернёмся к нашим баранам. Пост в тему:
Случайно наткнулся на сайт с тестером RegExp
Очень удобно.
Здесь сам сайт
А вот здесь пример разработанной реги для парсера СМС от Мобильных банков - там можно увидеть очень удобно сделанные он-лайн-подсказки при кликах на обрабатываемый текст и на элементы паттерна.



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Четверг, 27.09.2012, 13:24
 
Ответить
СообщениеК стати, народ, вернёмся к нашим баранам. Пост в тему:
Случайно наткнулся на сайт с тестером RegExp
Очень удобно.
Здесь сам сайт
А вот здесь пример разработанной реги для парсера СМС от Мобильных банков - там можно увидеть очень удобно сделанные он-лайн-подсказки при кликах на обрабатываемый текст и на элементы паттерна.

Автор - Alex_ST
Дата добавления - 27.09.2012 в 13:23
ikki Дата: Среда, 14.11.2012, 00:04 | Сообщение № 232
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
мой корявый шаблон для проверки "целое число от 0 до 255 (и больше ничего)":
[vba]
Code
.Pattern="^(1\d{2}|2([0-4]\d|5[0-5])|[1-9]?\d)$"
[/vba]

как можно написать короче и/или эффективнее?


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
Сообщениемой корявый шаблон для проверки "целое число от 0 до 255 (и больше ничего)":
[vba]
Code
.Pattern="^(1\d{2}|2([0-4]\d|5[0-5])|[1-9]?\d)$"
[/vba]

как можно написать короче и/или эффективнее?

Автор - ikki
Дата добавления - 14.11.2012 в 00:04
Poltava Дата: Суббота, 09.02.2013, 22:58 | Сообщение № 233
Группа: Друзья
Ранг: Форумчанин
Сообщений: 232
Репутация: 50 ±
Замечаний: 0% ±

Решил не открывать новую тему а добавить вопрос сюда. Итак задача вытащить из текста телефонные номера. Понимаю что правильным решением будет использовать регулярные выражения. Но убив пару дней так и не смог добиться того чего хочу!
Описываю что удалось найти может кто то поможет довести это до работоспособного варианта. Нашел шаблон
'Name: Strict Phone# Find/Format
'Author: Semferon
'Share Link: http://RegExr.com?2u41j
На сайте с тестовым текстом работает идеально! а вот в эксель я этого перенести не смог. Тестовый текст в прикрепленном файле как и мои попытки что то сделать.


Сообщение отредактировал Poltava - Суббота, 09.02.2013, 22:58
 
Ответить
СообщениеРешил не открывать новую тему а добавить вопрос сюда. Итак задача вытащить из текста телефонные номера. Понимаю что правильным решением будет использовать регулярные выражения. Но убив пару дней так и не смог добиться того чего хочу!
Описываю что удалось найти может кто то поможет довести это до работоспособного варианта. Нашел шаблон
'Name: Strict Phone# Find/Format
'Author: Semferon
'Share Link: http://RegExr.com?2u41j
На сайте с тестовым текстом работает идеально! а вот в эксель я этого перенести не смог. Тестовый текст в прикрепленном файле как и мои попытки что то сделать.

Автор - Poltava
Дата добавления - 09.02.2013 в 22:58
ikki Дата: Суббота, 09.02.2013, 23:11 | Сообщение № 234
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
Цитата (Poltava)
Тестовый текст в прикрепленном файле как и мои попытки что то сделать.

Poltava, честное слово - не вижу прикрепленного файла sad

пс. регулярные выражения в различных реализациях имеют различия.
возможно, проблема в этом.
но, конечно, надо посмотреть шаблон и пример с данными.


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
Сообщение
Цитата (Poltava)
Тестовый текст в прикрепленном файле как и мои попытки что то сделать.

Poltava, честное слово - не вижу прикрепленного файла sad

пс. регулярные выражения в различных реализациях имеют различия.
возможно, проблема в этом.
но, конечно, надо посмотреть шаблон и пример с данными.

Автор - ikki
Дата добавления - 09.02.2013 в 23:11
Poltava Дата: Суббота, 09.02.2013, 23:22 | Сообщение № 235
Группа: Друзья
Ранг: Форумчанин
Сообщений: 232
Репутация: 50 ±
Замечаний: 0% ±

Мда странно не прикрепился. Попытка номер два. Вот что интересно
If RegExp.test(txt) Then Возвращает true а следующая строка не срабатывае Set objMatches = RegExp.Execute(txt)
К сообщению приложен файл: Post1302092044.rar (18.1 Kb)


Сообщение отредактировал Poltava - Суббота, 09.02.2013, 23:23
 
Ответить
СообщениеМда странно не прикрепился. Попытка номер два. Вот что интересно
If RegExp.test(txt) Then Возвращает true а следующая строка не срабатывае Set objMatches = RegExp.Execute(txt)

Автор - Poltava
Дата добавления - 09.02.2013 в 23:22
ikki Дата: Суббота, 09.02.2013, 23:26 | Сообщение № 236
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
а, уже увидел (уточнение - в шаблоне по приведенной ссылке).
в реализации VBSсript RegExp нет проверок вида (?<=...) (кстати, в .NET Framework - есть, но я не знаю, как их использовать в Excel)

поэтому шаблон для использования в регулярках, доступных в Excel, надо будет менять.


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki


Сообщение отредактировал ikki - Суббота, 09.02.2013, 23:29
 
Ответить
Сообщениеа, уже увидел (уточнение - в шаблоне по приведенной ссылке).
в реализации VBSсript RegExp нет проверок вида (?<=...) (кстати, в .NET Framework - есть, но я не знаю, как их использовать в Excel)

поэтому шаблон для использования в регулярках, доступных в Excel, надо будет менять.

Автор - ikki
Дата добавления - 09.02.2013 в 23:26
ikki Дата: Суббота, 09.02.2013, 23:31 | Сообщение № 237
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
Poltava, а пример желаемого результата для приведенного фрагмента?
например, для меня, честно говоря, неочевидно:
считать ли подстроку "8(999)1112233oji" строкой, содержащей допустимый телефонный номер, или пропускать?


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
СообщениеPoltava, а пример желаемого результата для приведенного фрагмента?
например, для меня, честно говоря, неочевидно:
считать ли подстроку "8(999)1112233oji" строкой, содержащей допустимый телефонный номер, или пропускать?

Автор - ikki
Дата добавления - 09.02.2013 в 23:31
ikki Дата: Суббота, 09.02.2013, 23:36 | Сообщение № 238
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
Цитата (Poltava)
If RegExp.test(txt) Then Возвращает true

нет. не возвращает.
Вы в этом можете убедиться, закомментировав строку
[vba]
Код
On Error Resume Next
[/vba]


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
Сообщение
Цитата (Poltava)
If RegExp.test(txt) Then Возвращает true

нет. не возвращает.
Вы в этом можете убедиться, закомментировав строку
[vba]
Код
On Error Resume Next
[/vba]

Автор - ikki
Дата добавления - 09.02.2013 в 23:36
Poltava Дата: Суббота, 09.02.2013, 23:47 | Сообщение № 239
Группа: Друзья
Ранг: Форумчанин
Сообщений: 232
Репутация: 50 ±
Замечаний: 0% ±

Да Вы правы не возвращает. как то я и забыл что обработчик отключил.
И да считать, там все что похоже на телефон и есть телефон. это я уже пытался смоделировать все возможные корявые написания и спецыально пропустил пробел.


Сообщение отредактировал Poltava - Суббота, 09.02.2013, 23:48
 
Ответить
СообщениеДа Вы правы не возвращает. как то я и забыл что обработчик отключил.
И да считать, там все что похоже на телефон и есть телефон. это я уже пытался смоделировать все возможные корявые написания и спецыально пропустил пробел.

Автор - Poltava
Дата добавления - 09.02.2013 в 23:47
ikki Дата: Суббота, 09.02.2013, 23:52 | Сообщение № 240
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
Цитата (ikki)
пример желаемого результата для приведенного фрагмента

будет?
тире-скобки-пробелы из исходного текста сохранять?
или требуется форматировать результат более единообразно?


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
Сообщение
Цитата (ikki)
пример желаемого результата для приведенного фрагмента

будет?
тире-скобки-пробелы из исходного текста сохранять?
или требуется форматировать результат более единообразно?

Автор - ikki
Дата добавления - 09.02.2013 в 23:52
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Поговорим про RegExp? (Подготовка для топика FAQ по RegExp в Готовых решениях)
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!