Страница: 1 | 2 |
Вопрос: Поиск строк функцией REGEXPR
Добавлено: 16.08.06 17:27
Автор вопроса: alex
Ответы
Всего ответов: 25
Номер ответа: 16
Автор ответа:
JMP
Вопросов: 6
Ответов: 171
Профиль | | #16
Добавлено: 18.08.06 18:00
To: CyRax
Сдаюсь, забыл начисто эти !"№;%:?*( выражения, с ними ИМХО надо либо постоянно работать, либо обходить стороной, иначе каждый раз возвращаясь к ним ломать голову приходиться что за чем стоит и что каждый крестик обозначает. Я пробовал давно сравнивать REGEXPR с INSTR,REPLACE$,VERUFY$, TALLY$,PARSE$ и пришел к выводу что все это внутри базируеться на одних и тех же функциях(т.е.) выигрыш по времени выполнения =0, зато пока вспомнишь этот набор !"№;%:?* выражений времени уходит больше на разработку. ИМХО папа придумал REGEXPR для совместимости с другими языками но реализация... несколько отличается
Номер ответа: 17
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #17
Добавлено: 18.08.06 21:54
Не согласен, в общем случае регекспы реализуются через построение дерева анализа и конечные автоматы, следовательно, для полной их замены как раз и придется писать такой код, а он большой.
Номер ответа: 18
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #18
Добавлено: 18.08.06 22:19
Ну реализация это само собой, только ты учти что любой конечный автомат лучше всего выражается регулярным выражением. Как ты его будешь реализовывать это уже твои проблемы, но сформулировать всё равно нужно регулярным выражением или грамматикой. Ну а автоматизированная версия рег. выражений (REGEXPR и др.) это скорее для тех кому лень самому писать автомат.
Номер ответа: 19
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #19
Добавлено: 18.08.06 22:20
Sharp, это для JMP было.
Номер ответа: 20
Автор ответа:
JMP
Вопросов: 6
Ответов: 171
Профиль | | #20
Добавлено: 19.08.06 06:23
С автоматами все понятно, меня просто реализация самих рег.выражений достает, практически микро язык, если часто не пользовать, то головоломно как то по сравнению
с такими мощными операторами как PARSE, INSTR, TALLY, VERIFY, REPLACE$,REMOVE$, RETAIT$, REMAIN$, STRINSERT$,STRDELETE$,STRREVERSE$... можно написать автомат, вернуться к нему через год и понять о чем смысл.
Или my bad ... почаще юзать рег.выражения чтоб запомнить смысл всех .^$*[!+?
а так приходится убивать время на ХЕЛП каждый раз или http://regexlib.com/RETester.aspx
или для ПБ Regular Expression Tester от Кевина
http://www.powerbasic.com/support/forums/Forum7/HTML/002960.html
Номер ответа: 21
Автор ответа:
alex
Вопросов: 84
Ответов: 453
Профиль | | #21
Добавлено: 19.08.06 15:09
Почитал про регулярные выражения, оказывается это невероятно мощная штука. Можно сравнить с SQL, только для текста. А Regular Expression Tester просто находка! ))
Номер ответа: 22
Автор ответа:
JMP
Вопросов: 6
Ответов: 171
Профиль | | #22
Добавлено: 19.08.06 20:01
Да в том что это мощная штука в этом сомнений даже нет,
меня ПБ-шный синтаксис рег.выражений всегда с толку сбивает, точнее примение () , если на других диалектах рег.выражений {PCRE,Python,JavaScripts,.NET,xxxNix} прокатывают готовые маски из баз данных парсинга, то в ПБ-шке комбинируя сложные выражения очень легко запутаться.
Пытался в свое время приспособить науку от
"Mastering Regular Expresions" by Jeffery Friedl
но честно говоря зарылся с ПБ-шным различием.
Номер ответа: 23
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #23
Добавлено: 20.08.06 11:49
Ну так а в чём различие ты выяснил? Интерпретация выражений или сам синтаксис? Если синтаксис одинаковый и ты его знаешь, то адаптировать я думаю не составит труда. Покажи, если не трудно, некоторые из примеров, которые не сработали.
Номер ответа: 24
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #24
Добавлено: 20.08.06 11:59
Ну вообще скокби, насколько я понял, предназначены для группировки, что позволяет применять спецсимволы не к одному символу, а ко всей группе в скобках. Например: AB+ и (AB)+
Номер ответа: 25
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #25
Добавлено: 20.08.06 12:09
Прошу прощения, в 24 наврал. Спецсимволы не применяются к скобкам. Скобки нужны просто для выделения нескольких символов в группу, при том что к выделенной группе применяется ограниченный набор правил.