Еще раз про \K

| Нет комментариев

Метасимвол \K в регулярных выражениях Perl 5.10 не только полезен, но и, как выясняется на реальном проекте, меняет мысли разработчика :-)

Время от времени возникает задача выделить из текста одно или несколько предложений, чтобы сформировать сниппет записи. Неправильный подход — обрезать строку на заданном числе символов и поставить многоточие (Фейсбук в транслящиях вообще обрезает строку по байтам, и от русских букв иногда отрезается половинка юникодной последовательности). Чуть более приятный результат (но подход настолько же неправилен) дает отсечение по границе слова (как делает Яндекс в поисках по блогам).

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

С метасимволом \K это проще:

$snippet =~ s{^.{150}[^\.]+\.\K.*$}{};

Комментировать

Страницы

  • img

Об этой записи

Сообщение опубликовано 11.11.2009 23:47. Автор — ash.

Предыдущая запись — Об анкетах и обратной связи

Следующая запись — Внутренности ba.pm.org

Смотрите новые записи на главной странице или загляните в архив, где есть ссылки на все сообщения.