От автора: приветствую вас, друзья. В этой статье мы с вами познакомимся с еще одним метасимволом в регулярных выражениях — это метасимвол отрицания, который позволяет найти совпадение с любым символом, кроме заданных в символьном классе. Приступим?
Начнем с того, в каких случаях нам может потребоваться символ отрицания. Классический вариант, когда мы открыли некий парный символ, например кавычки, и внутри кавычек нам подходят любые символы, кроме, собственно, кавычек. Вот здесь нам и пригодится символ отрицания.
Как же обозначается этот символ в регулярных выражениях? На самом деле он уже вам знаком. Это циркумфлекс, который по простому часто называют крышкой или домиком. Записывается он так — ^. Постойте, скажете вы, ведь этот символ обозначает начало строки в регулярках. Все верно. Но этот символ также является и символом отрицания.
Как трактовать этот метасимвол — зависит от его позиции в регулярном выражении. Если он стоит самым первым в регулярке, то есть идет сразу после ограничителя шаблона, тогда это метасимвол начала строки. Если же он используется в самом начале символьного класса — [^…] — в этом случае он интерпретируется как символ отрицания и сообщает, что все символы, идущие после него, не должны встречаться в совпадающей позиции строки. Во всех прочих случаях этот символ совпадает сам с собой, то есть не является метасимволом.
Ну и давайте решим задачу, озвученную выше, — найдем все ссылки в тексте:
1 |
$pattern = '#<a href="[^"]+">.+?</a>#'; |
Вот такое вот не сложное решение у нас получилось и, как видите, оно работает:
Ну а на этом у меня сегодня все. Больше о регулярных выражениях вы можете узнать из нашего курса по регулярным выражениям. Удачи!