[oodisc] Regexp in filters

Alexej Kryukov akrioukov на newmail.ru
Ср Ноя 12 12:30:11 MSK 2003


On Wednesday 12 November 2003 11:27, Alexandr Brednev wrote:
> AK> В поиске, вообще-то.
> Мне чаще это хочется в филтре, чем в поиске.
>
> AK> Опции я там в упор не ощутил ;-),
> Она там есть. В параметрах фильтра, вызываемых при нажатии на кнопку
> "Детали".

Да, теперь вижу.

> AK>  а регекспы, как выяснилось, таки
> AK> работают. Просто Вы неправильно задаете условие. В Вашем случае
> AK> следовало написать: [А-Яа-я]*ов .
> Почему? Ведь * означает "любая комбинация символов"!  Так и в справке
> написано... Кстати, так тоже работает: .*ов .
> Но это какое-то странное поведение регекспов, по логике *ов тоже
> должно работать (как в линуксовом grep).
> И вообще, регекспы с * ведут себя как-то странно.
> Так что это баг ИМХО. :(

Читайте внимательнее справку. Там сказано "Represents any *number* of
characters". Спрашивается, любое число каких именно символов? Да 
тех, что были указаны перед этим. Далее приводится пример, который
это подтверждает: For example, "Ab*c" finds "Ac", "Abc", "Abbc",
"Abbbc", and so on. И в справке по фильтрам тоже ведь не зря
предлагается ставить точку перед *.

Что же до линуксового grep, то это не аргумент. Реализация регекспов
в OOo вообще довольно своеобразна. Поэтому багом следует считать
лишь такое поведение, которое прямо противоречит указанному в справке.




Подробная информация о списке рассылки Oo-discuss