RegExp

Разработка программ на пес его знает на чем
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Гость

Сообщение Гость »

Здравствуйте!

Есть такие, кто юзал интерфейс IRegExp? Что-то у меня оно работает лишь частично: установить и читать Pattern, Global и IgnoreCase удаётся, а функции Test и Replace работать не желают.

С уважением, Михаил

Вопрос снимается. Другой вопрос: надо кому полная поддержка регулярных выражений в кларе (как в VBScript/JScript)? А если надо, то нафига? ;)

Дуга Михаил

Вот именно, "для нафига"?
То есть, возможность вызова функций типа match(var, pattern) или substitute(var, pattern, replacement) вещь иногда полезная. Но все равно их использование в языках, отличных от перла/sed/awk есть уродство. Ибо в перле RE встроены в синтаксис языка, а в остальных языках выглядят совсем не так, как хотелось бы.

--
Best regards,
Maxim Yemelyanov,
Enigma Soft Company
phone: +380 572 177977
WEB: http://enigmasoft.com.ua
e-mail: clalist@enigmasoft.com.ua
ICQ: 12253836

Странная логика. В сях нет встроенных операций ввода/вывода, чего ж теперь, <stdio.h> есть уродство?

Регулярные выражения мне понадобились для такой задачи: в базу закачиваются прайсы конкурентов, есно их содержание может быть любым. К примеру, у некоторых в наименовании товара торчит и срок годности, вот его и можно вычленять.
Кстати, кроме
То есть, возможность вызова функций типа match(var, pattern) или substitute(var, pattern, replacement) вещь иногда полезная.
есть ещё конструкция

Код: Выделить всё

  Set Matches = regEx.Execute(strng)   ' Execute search.
  For Each Match in Matches      ' Iterate Matches collection.
    RetStr = RetStr & "Match found at position "
    RetStr = RetStr & Match.FirstIndex & ". Match Value is '"
    RetStr = RetStr & Match.Value & "'." & vbCRLF
  Next
С уважением, Михаил
Регулярные выражения мне понадобились для такой задачи: в базу закачиваются
Закинь в рассылу, плиз.
А интерфейс ручками делал или генератор использовал?

С уважением, Андрей Истомин

Ручками. А что за генератор?
Библиотека для C55 и пример в аттаче. Выбираем текстовый файл (для примера "adr.txt" лежит там же), получаем все адреса e-mail в нём.

С уважением, Михаил.
Странная логика. В сях нет встроенных операций ввода/вывода, чего ж теперь, <stdio.h> есть уродство?
Операции В/В в языке - это междумордие к ОС. Есть и <stdio.h>, есть и <*stream>. Но более-менее удобно в тех или иных случаях.

Код: Выделить всё

   Set Matches = regEx.Execute(strng)   ' Execute search.
   For Each Match in Matches      ' Iterate Matches collection.
     RetStr = RetStr & "Match found at position "
     RetStr = RetStr & Match.FirstIndex & ". Match Value is '"
     RetStr = RetStr & Match.Value & "'." & vbCRLF
   Next
Я ж говорю - уродство. Нет, ясно, что RE - вещь нужная, и хоть как-то, но использовать их приходится, ибо иногда упрощают решение на порядок. Только мне смотреть на это больно :)

Все равно - оффтопик...

--
Best regards,
Maxim Yemelyanov

Написал: ClaList(2)
Гость

Сообщение Гость »

Добрый день, Стефаненко!

Раз уж ты у себя на сайте поместил сабж (совершенно сырой и предназначавшийся только для ознакомления), обнови его, пожалуйста, аттачем.
Исправлена ошибка повторной инициализации COM-библиотеки, убрано ограничение на длину pattern, переработан пример, добавлен readme.

С уважением, Михаил
Написал: ClaList(2)
Гость

Сообщение Гость »

В ридми сказано, что комментарии будут выслушаны. Позволю себе цитату:

>=== start
Hi. однако же у меня крыша уже едет - я не могу написать регулярное выражение :(

Есть заголовок письма:

Я проморочился много времени и ничего толком не придумал. Все, что у меня получалось - не дает стопроцентно правильного результата при разных комбинациях запятых, пробелов, табуляций и ньюлайнов в поле.

Может я изобретаю велосипед? Any ideas?
Парсинг RFC822 с помощью регексов -- чья-то старая не очень добрая шутка, которая ходит с тех пор по неокрепшим умам.

Возьми какой-нибудь стандартный парсер RFC822, который позволяет извлекать из полей To/Cc/Resent-To адреса в том виде, в котором они будут непосредственно использоваться Mail Transfer Agent'ом (то есть просто "vasya@domain.ru", без всяких там "Vasiliy Pupkin <vasya@domain.ru>"

Удали из этого списка те адреса, которые тебе не нравятся, и собери их обратно в соответствующие поля. На RFC822-комментарии забей.
>=== end

Кроме того... Самый, пожалуй, важный момент.

president@whitehouse.gov - вполне валидный с точки зрения MTA адрес. Но слать на него спам вряд-ли кому-то захочется :)

--
Best regards,
Maxim Yemelyanov,
Enigma Soft Company
phone: +380 572 177977
WEB: http://enigmasoft.com.ua
e-mail: clalist@enigmasoft.com.ua
ICQ: 12253836
Написал: ClaList(2)
Гость

Сообщение Гость »

Добрый день, Максим.
В ридми сказано, что комментарии будут выслушаны.
В ридми этого не сказано. Тоже позволю себе цитату:
readme.txt> Замечания и предложения слать сюда: dedpahom@mail333.com
Ну да Бог с ним, комментарий так комментарий...Дикий какой-то комментарий, неадекватный.
Hi. однако же у меня крыша уже едет - я не могу написать регулярное выражение :(
Кто такой VL, что его цитируешь? Если тот, о ком я подумал, то принято указывать издание полного собрания сочинений, том, страницу.
Парсинг RFC822 с помощью регексов -- чья-то старая не очень добрая шутка, которая ходит с тех пор по неокрепшим умам.
Объясни, что такое RFC822 , и над шуткой посмеёмся вместе.
president@whitehouse.gov - вполне валидный с точки зрения MTA адрес. Но слать на него спам вряд-ли кому-то захочется :)
Позволю себе ещё цитату:
pattern, replacement) вещь иногда полезная. Но все равно их использование в языках, отличных от перла/sed/awk есть уродство. Ибо в перле RE встроены
Не зняю, к чему мне вспомнился Савва Игнатьич, говоривший о Хоботове:
-Выдаюшшийся человек! На всех языках как птица поёт! Но через это нет равновесия в голове.

С уважением, Михаил.
Написал: ClaList(2)
Гость

Сообщение Гость »

Кто такой VL, что его цитируешь? Если тот, о ком я подумал, то принято указывать издание полного собрания сочинений, том, страницу.
:)
ТОТ об этом не писал.
Объясни, что такое RFC822 , и над шуткой посмеёмся вместе.
Standard for the format of ARPA Internet text messages.

В том числе, и формат адреса email.

--
Best regards,
Maxim Yemelyanov
Написал: ClaList(2)
Ответить