Это регулярное выражение исходит от Atwood и используется для фильтрации якорных тегов с чем-либо, кроме href и заголовка:
<a\shref="(\#\d+|(https?|ftp)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+)"(\stitle="[^"]+")?\s?>
Мне нужно разрешить дополнительный атрибут, который точно соответствует: target = "_ blank". Таким образом, следующий URL должен быть разрешен:
<a href="http://www.google.com" target="_blank">
Я попытался изменить шаблон на:
<a\shref="(\#\d+|(https?|ftp)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+)"(\stitle="[^"]+")(\starget="_blank")?\s?>
<a\shref="(\#\d+|(https?|ftp)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+)"(\stitle="[^"]+")(\starget=\"_blank\")?\s?>
Очевидно, я не очень хорошо знаю регулярные выражения. Как следует скорректировать шаблон, чтобы разрешить пустую цель и никаких других целей?