purebasic.info

PureBasic forum
Текущее время: Сб июл 21, 2018 7:17 am

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 90 ]  На страницу 1, 2, 3, 4, 5, 6  След.
Автор Сообщение
СообщениеДобавлено: Ср окт 28, 2009 4:13 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Чт июн 25, 2009 1:02 pm
Сообщений: 2282
Откуда: Russia — Belarus
Благодарил (а): 6 раз.
Поблагодарили: 72 раз.
Пункты репутации: 11
Как-то здесь я спрашивал на счет замены HTML тегов на BBCODE, для такой задачи необходимо использование регулярных выражений.
В PB используются такие же регулярные выражения, как и в языке Perl, да и походу они наилучшие.

С использованием этих выражений можно ознакомиться в статье "Perl-1: бороться и искать", которая разбита на три части и находится на этом сайте:
http://www.softring.ru/articles/perlregexp1.html
http://www.softring.ru/articles/perlregexp2.html
http://www.softring.ru/articles/perlregexp3.html
Все доходчиво написано и приведены примеры, да и плюс ко всему, в последней части есть полная "спецификация регулярных выражений Perl".

Удачи!

_________________
EnableExplicit User


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср окт 28, 2009 7:14 pm 
Не в сети
BackupUser
Аватар пользователя

Зарегистрирован: Ср ноя 29, 2006 9:29 pm
Сообщений: 1492
Откуда: Москва
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Спасибо, очень уместно, как раз этим занимаюсь, в данный момент, обработкой текста.

_________________
ПОДПИСЬ____________ Fdisk, (пренеприятнейшая личность(С) ХроноСиндромо)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт мар 16, 2010 1:39 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Чт июн 25, 2009 1:02 pm
Сообщений: 2282
Откуда: Russia — Belarus
Благодарил (а): 6 раз.
Поблагодарили: 72 раз.
Пункты репутации: 11
По поводу повторений есть такие сиволы:
Код:
1
2
3
*       Соответствует повторению предыдущего символа нуль или более раз.
+       Соответствует повторению предыдущего символа один или более раз.
?       Соответствует повторению предыдущего символа нуль или один раз.


Но как можно задать максимальное кол-во повторений? Т.е.:
Код:
1
Соответствует повторению предыдущего символа один или n раз.


_________________
EnableExplicit User


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт мар 16, 2010 4:46 pm 
Не в сети
BackupUser
Аватар пользователя

Зарегистрирован: Ср ноя 29, 2006 9:29 pm
Сообщений: 1492
Откуда: Москва
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Максимальное количество повторений, это ни что иное, как все имеющиеся в наличии.
Тот пример, который в справке, именно это и выводит.

_________________
ПОДПИСЬ____________ Fdisk, (пренеприятнейшая личность(С) ХроноСиндромо)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт янв 04, 2011 10:47 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Пн сен 07, 2009 10:00 pm
Сообщений: 1046
Откуда: Николаев
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
qpAHToMAS писал(а):
www.softring.ru/articles/perlregexp1.html

www.softring.ru/articles/perlregexp2.html

www.softring.ru/articles/perlregexp3.html

Все доходчиво написано и приведены примеры, да и плюс ко всему, в последней части есть полная "спецификация регулярных выражений Perl".

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

_________________
www.mirashic.narod.ru
Первое знакомство с PB


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт мар 17, 2011 7:11 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Пн сен 07, 2009 10:00 pm
Сообщений: 1046
Откуда: Николаев
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Небольшая утилита применительно к PB.
Строим и проверяем регулярные выражения.
В поле текст - вставляем испытуемую строку текста.
В поле результат - вывод массива результатов поиска.
Двойной клик по списку спецификаций - добавить в в строку RegularExpression.

Результат заносится в буфер обмена вида:
Код:
1
2
3
4
5
6
7
8
9
10
11
 
String.s="строка"
Find.s="шаблон"
 
CreateRegularExpression(0,Find.s,#PB_RegularExpression_DotAll)
 Dim Matched.s(100)
Matching.i = ExtractRegularExpression(0,String.s,Matched())
For i = 0 To (Matching - 1)
Debug Matched(i)
Next
FreeRegularExpression(0)


Изображение

На онлайновом сервере RegExr много готовых примеров.


Вложения:
Regular Expression.rar [52.94 KiB]
Скачиваний: 465

_________________
www.mirashic.narod.ru
Первое знакомство с PB
Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт мар 17, 2011 7:38 pm 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6327
Благодарил (а): 19 раз.
Поблагодарили: 189 раз.
Пункты репутации: 48
Мощно! И статья понравилась, многое проясняет.

_________________
read-only


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт мар 18, 2011 9:33 pm 
Не в сети
профессор

Зарегистрирован: Чт авг 05, 2010 2:36 pm
Сообщений: 466
Откуда: Донецк
Благодарил (а): 45 раз.
Поблагодарили: 11 раз.
ООО! Мощьная прога! mirashic, респект! )))
Были пара бредовых идей по разбору строки на токены, а благодаря этой проге бред оказался довольно реальным.

_________________
PureBasic 5.60 X86, RfoBasic 90, Tinycc 0.97, Asus K54C Intel i7 2.7 ghz, 8 gb ddr3, Intel HD 3000, Windows XP SP3, Windows 10 x64, Nexus 4 and v5.1.1.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт мар 18, 2011 10:42 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11206
Благодарил (а): 4 раз.
Поблагодарили: 421 раз.
Apokalipsis писал(а):
бред оказался довольно реальным.

:D :D

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб мар 19, 2011 9:26 am 
Не в сети
профессор

Зарегистрирован: Чт авг 05, 2010 2:36 pm
Сообщений: 466
Откуда: Донецк
Благодарил (а): 45 раз.
Поблагодарили: 11 раз.
Пётр писал(а):
Apokalipsis писал(а):
бред оказался довольно реальным.

:D :D

Тебе смешно! А я неделю голову ломал как разбирать строку типа "-R+AA(1)*A2"
Это просто пример, непомню уже что за выражение пришлось разбирать, но смысл думаю понятен. :)))

_________________
PureBasic 5.60 X86, RfoBasic 90, Tinycc 0.97, Asus K54C Intel i7 2.7 ghz, 8 gb ddr3, Intel HD 3000, Windows XP SP3, Windows 10 x64, Nexus 4 and v5.1.1.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб мар 19, 2011 3:02 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Пн сен 07, 2009 10:00 pm
Сообщений: 1046
Откуда: Николаев
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Попытался сделать выделение другим цветом результата поиска.
Пример из CodeArchiv. Пришлось изменить поле текста с StringGadget на EditorGadget.
Для StringGadget выделить слово другим цветом не нашёл.
И с автоматическим переводом строки при достижении края в EditorGadget встречал на форуме но не нашел где...
Отображение цвета корректно работает только в одну строку и при уникальных словах (при поиске одинаковых слов подсвечивается только первое слово )

Добавил таблицу шаблонов готовых решений с кратким описанием (надо ещё заполнять файл template.txt)

Изображение


Вложения:
ColorRegularExpression.rar [58.83 KiB]
Скачиваний: 405

_________________
www.mirashic.narod.ru
Первое знакомство с PB


Последний раз редактировалось mirashic Сб мар 19, 2011 7:39 pm, всего редактировалось 1 раз.
Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб мар 19, 2011 3:11 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11206
Благодарил (а): 4 раз.
Поблагодарили: 421 раз.
mirashic писал(а):
И с автоматическим переводом строки при достижении края в EditorGadget встречал на форуме но не нашел где...

Код:
1
SendMessage_(GadgetID(Gadget_Editor),#EM_SETTARGETDEVICE, #Null, 0)

mirashic писал(а):
Отображение цвета корректно работает только в одну строку и при уникальных словах (при поиске одинаковых слов подсвечивается только первое слово )
Значит нужно изменить алгоритм поиска слов.

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб мар 19, 2011 3:43 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Пн сен 07, 2009 10:00 pm
Сообщений: 1046
Откуда: Николаев
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Пётр писал(а):
SendMessage_(GadgetID(Gadget_Editor),#EM_SETTARGETDEVICE, #Null, 0)

Эту строку видел но она не работала дома , сейчас в гостях за другим компом и всё работает ?

_________________
www.mirashic.narod.ru
Первое знакомство с PB


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб мар 19, 2011 7:39 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Пн сен 07, 2009 10:00 pm
Сообщений: 1046
Откуда: Николаев
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
mirashic писал(а):
при уникальных словах (при поиске одинаковых слов подсвечивается только первое слово )

Исправил и перезалил.

_________________
www.mirashic.narod.ru
Первое знакомство с PB


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт авг 12, 2011 5:58 am 
Не в сети
док
Аватар пользователя

Зарегистрирован: Ср фев 10, 2010 5:04 pm
Сообщений: 99
Откуда: Ростов-на-Дону
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Прога зачетная только вот мало очень текста в себя вмещает веб страница полностью не помещается :(

_________________
давно я тут не был


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 90 ]  На страницу 1, 2, 3, 4, 5, 6  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB