singlepost

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

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

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

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

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

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

Ответить

Пожалуйста, зарегистрируйтесь для комментирования.

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