singlepost

5 быстрых способов сделать свои регулярные выражения быстрее :) << На главную или назад  

«Каждую программу можно сократить на один байт», эта истина была известна еще во времена, когда ЭВМ были большие и ими можно было обогревать здания. Также и с регулярными выражениями — всегда есть куда их оптимизировать, улучшать или ускорять.

Несколько быстрых советов - если вы еще этого не делаете, то может стоит начать оптимизировать ваши выражения?
1.Если строка, которую вы ищите при помощи регулярного выражения, находится всегда в начале или в конце исходной строки — обязательно используйте якоря — это намного ускоряет работу.
2.Если вы знаете, какие подстроки встречаются внутри искомой строки — обязательно указывайте их, тогда поиск будет идти существенно быстрее — т.е. чем больше КОНСТРАНТ — фиксированных строк в регулярном выражении, тем легче движку, который его выполняет.
3.Если вы можете точно указать количество совпадений — указывайте обязательно. Не пользуйтесь квантификатором '*', там где можно указать '?' или же точное количество при помощи '{3,5}'
4.По возможности не используйте оператор ИЛИ (|). Иногда бывает быстрее выполнить несколько сравнений с разными регулярными выражениями, которые отличаются только с одной позиции, чем выполнять одно регулярное выражение в котором есть оператор ИЛИ.
5.Если вы можете точно указать список символов в какой-либо позиции — указывайте его при помощи '[]'. И не используйте вместо этого '.'.

Есть еще огромное количество всяких тонкостей при работе с шаблонами, которые сложно объяснить в статье. Лучше один раз показать, чем 10 раз рассказывать о том, как это сделать.
Поэтому — приходите на онлайн тренинг, который будет 10-11 апреля.
Там будет возможность и задать свой вопрос онлайн и тутже получить на него ответ.
Самое интересное — я буду транслировать скринкаст — т.е. вы сумеете в режиме реального времени понаблюдать, как составлять регулярные выражения из кусочков.

Одним словом — самое оно для новичков в этой теме :)

Все подробности — на моем блоге :) Адрес блога у меня в профайле :)

92 ответов в теме “5 быстрых способов сделать свои регулярные выражения быстрее :)”

  1. 1
    1986 lego 5540 model team formula 1 racer complete w box and stickers free ship ответил:

    1986 lego 5540 model team formula 1 racer complete w box and stickers free ship…

    pinko starry sky black love bagsouthside serpents riverdale riverdale tumblrsmart bear case for motorola moto e5 playjewel chain samsung phone cases…

  2. 2
    converse high tops kohls ответил:

    converse high tops kohls…

    carry me santa dress up piggy back unisex adult fancy dressst. patricks day mini kilt womens sizenew style hot sale halloween mens cosplay costume adult male vampire costume suit with hat shirt trousers coat in holidayssaffiano hibiscus print bowler ba…

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.