Записи с тегом «regexp»
Снова об отрицании в регулярном выражении
Реализовать условие «строка не содержит подстроку» напрямую в регулярном выражении нельзя, но можно воспользоваться т.н. negative lookahead (которые уже были описаны в предыдущем сниппете):
<pre> <?php $pattern = "/^(?!(.*?)HTC)/"; // Совпадение будет со строкой не содержащей 'HTC' preg_match($pattern, "HTC A310 Explorer", $matches); print_r($matches); preg_match($pattern, "Нетбук Acer Aspire 3750", $matches); print_r($matches); ?> </pre>
Другой вариант реализации предложен на stackoverflow.com.
Русские буквы в регулярных выражениях в JavaScript
На веб-странице в кодировке UTF-8 возникла необходимость в JavaScript применить в регулярном выражении русские буквы. Напрямую указать их нельзя, вариант решения:
^[\u0400-\u04FF\s\.]+$
(Регулярное выражение требует хотя бы один символ, каждый из которых может быть русской буквой, точкой или пробелом).
Отрицание в регулярном выражении
Для задач URL-роутинга необходимо было написать регулярное выражение, под которое подходили бы относительные URL вида:
/news/some-long-and-detailed-shortcut-for-news-item/ /news/some-long-and-detailed-shortcut-for-news-item
Но не подходили следующие:
/news/page-2/ /news/delete/42/ /news/edit/42/ /news/add/ /news/add
Часть адреса some-long-and-detailed-shortcut-for-news-item желательно получить в виде отдельной строки и без слеша вне зависимости
от того, указан ли он в адресе.
