Я всегда писал такие регулярные выражения
<A HREF="([^"]*)" TARGET="_blank">([^<]*)</A>
но я только что узнал об этом ленивый предмет и что я могу написать его вот так
<A HREF="(.*?)" TARGET="_blank">(.*?)</A>
Есть ли недостаток в использовании этого второго подхода? Регулярное выражение определенно более компактно (даже SO лучше его анализирует).
Изменить. Здесь есть два лучших ответа, которые указывают на два важных различия между выражениями. ysth отвечает на слабость в не-жадном/ленивом, в котором сама гиперссылка может включать другие атрибуты тега A (определенно, не очень хорошо). Роб Кеннеди указывает на слабость в жадном примере: в тех якорях тексты не могут включать другие теги (определенно не все в порядке, потому что они не будут захватывать весь якорный текст)... так что ответ таков: регулярные выражения - это то, что они ленивые и нелазные решения, которые кажутся одинаковыми, вероятно, не семантически эквивалентны.
Изменить. Третий лучший ответ: Алан М относительно относительной скорости выражений. На данный момент я отмечу его как лучший ответ, чтобы люди дали ему больше очков.