Регулярные выражения

Russian main discussion
Post Reply
  • Author
  • Message
Offline
Posts: 3217
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

Visitor7
В английской.

Offline
Posts: 88
Joined: Sun Jun 03, 2012 8:15 am

Post by Visitor7 »

VladSh wrote:В английской.
Осилил. Там же просто про очередность. А по факту, [а-я]* все равно не находит слово "ёжик". А [a-zA-Z] не то же самое что \w, обе конструкции вполне современные, просто разные. А \w у меня не находит ничего кроме [0-9a-zA-Z_]. Так и не понял, FeyFre, что вы хотели сказать.

Offline
Posts: 2247
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

Visitor7
Что это такое в двух словах.
Ваш collation утверждает "После Ь идет Э, потом Ю, потом Я"
Мой collation утверждает "После Ь идет Ю, потом Я"
Мы оба правы, ибо Ваш основан на Белорусском алфавите, мой - на Украинском алфавите.
Так вот, если вы хотите чтобы "[а-я]*" нашло "ёжик" то Вы должны как-то пнуть парсер что-бы он пользовался collation "Русский алфавит", т.е. в котором "а" < "ё" < "я". А судя по вашему примеру если "[а-яё]*" находит "ёжик" то парсер пользуется collation в котором "а" < "ё" < "я" не выполняется.
Как парсеру поменять collation - дело собственно индивидуальное.
Например в СУБД MySQL collation можно задать для каждой таблицы индивидуально - это свойство таблицы. В других алгоритмах, которые зависят от collation если задается, то как-то по другому - ищите. Один из вариантов - пнуть разработчика. Другой - написать/исправить самостоятельно, третий - выкинуть и взять другое. Подход индивидуален.

eil
Offline
Posts: 40
Joined: Sun Nov 15, 2009 5:53 pm
Location: Alex

Post by eil »

Visitor7, и вновь спасибо, за решение.

Offline
Posts: 88
Joined: Sun Jun 03, 2012 8:15 am

Post by Visitor7 »

FeyFre wrote:Ваш collation утверждает "После Ь идет Э, потом Ю, потом Я".
А вы уверены что мой collation вообще существует? Мне кажется мы говорим о разных уровнях. RegExp - это функция языка разработки на которую ровняется акелпад. Может быть, поиск в акелпаде даже этой функцией и реализуется(я не знаю языков, тем более функций си). У нее есть определенные возможности и определенный формат, в котором символы означают их код в "таблице символов" и, соответственно, диапазоны символов задают диапазоны кодов в "таблице символов". А формат "таблицы символов" жестко определен.
А то о чем говорите вы - это уровень функций пользовательского интерфейса(несколько уровней вверх) программы, специально разработанной в том числе для гибкой сортировки выборки. Если копнуть на несколько уровней глубже, то эта гибкая сортировка в БД посредством "таблиц очередности символов при сортировке", наверняка реализуется теми же RegExp функиями языка разработки, которые и слыхом не слыхивали ни про какой collation.
На уровне программиста скорее всего можно лишь переиначивать диапазоны подменами ввода типа "а-я" на "а-яё", но это лишь внесет путаницу. Можно сделать спец. символ для русского диапазона, например \с который будет подменяться на [А-Яа-яЁё] или сразу на [0-9_A-Za-zА-Яа-яЁё], но так ли часто это требуется, что запаривает лишний раз написать ЁА-ё или а-ё(при нечувствительности к регистру всего на символ больше, при чувствительности на два символа)? А в 99% текстов в обоих случаях Ё-ё сканает(всего на символ больше).

Offline
Posts: 2247
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

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

Offline
Posts: 88
Joined: Sun Jun 03, 2012 8:15 am

Post by Visitor7 »

)) Я просто заглянул человеку ответить. Если вы так часто набираете диапазоны, попросите у автора сделать настраиваемый спецсимвол, которому каждый может присвоить свой диапазон(своего языка либо вообще иной).

Offline
Posts: 876
Joined: Tue Jul 24, 2007 8:54 am

Post by Fr0sT »

Юникодный регэксп - это жесть. Конечно удобно, но реализовать хотя бы базовый функционал - застрелиться можно.
http://www.regular-expressions.info/unicode.html
http://unicode.org/reports/tr18

Offline
Posts: 176
Joined: Sat Dec 24, 2011 4:05 pm

Post by F. Phoenix »

В стандартном комплекте .NET идет юникодный - можно попробовать оттуда код портировать (как вариант, из Mono), хотя может проще найти более совместимую с Акелом реализацию... :roll: А чего мне из тамошних возможностей тут главным образом не хватает, так это предпросмотра назад, хотя именованные ссылки и поддержка кириллицы в \w тоже бы не помешали.

Offline
Posts: 294
Joined: Tue Jul 27, 2010 11:18 pm

Post by Serge Yolkin »

поддержка кириллицы в \w
Надеюсь, изменения существующего функционала будут опциональными...

Offline
Posts: 2
Joined: Sun Sep 16, 2012 2:32 pm

Обрезка строки

Post by biglentring »

День добрый! Подскажите пожалуста!

Есть N количество строк с разным содержанием, нужно сделать обрезку всех строк на 200+- символе, чтобы в каждой строке осталисть первые 200 символов, остальное удалить.

Пробывал .{190,200}\b в Dreamweaverе отлично находит первые 190-200 символов и выделяет их, но мне нужно выделить все что после этих 190-200 символов для автозамены пустотой.

В akelpad эта конструкция работает совсем по другому, если есть знающие люди, помогите чайнику.

Offline
Posts: 1862
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post by Infocatcher »

biglentring wrote:чтобы в каждой строке осталисть первые 200 символов, остальное удалить
Что: ^([^\n\r]{200})[^\n\r]+
Чем: \1

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post by KDJ »

Что: ^([^\n\r]{200})[^\n\r]+
Чем: \1
It will work in AkelPad version 4.8.0.
viewtopic.php?t=1410&start=15

Offline
Posts: 1862
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post by Infocatcher »

KDJ
Oh, I forgot about this.
But seems like
([^\n\r]{14})[^\n\r]+
works fine too.

Offline
Posts: 2
Joined: Fri Oct 05, 2012 12:53 pm

Post by qvent »

Всем добрый день. Прошу помощи, и сильно не пинать вопрос по регулярны выражениям ,я уже голову поломал, не могу найти решение.

есть маасив строчек, в каждой строчке есть ссылка, начинающаяся с http:// , перед ссылкой и после неё есть текст. Собственно вопрос, каким образом можно удалить этот текст, и оставить только ссылки?
Post Reply