Стандартный ответ: Не используйте регулярные выражения для чтения XML, особенно HTML.Используйте анализатор HTML.
Реалистичный ответ: если ввод, с которым вы работаете, является последовательным и предсказуемым , то это может работать для вас:
/<link\s+rel="([^"]*)"/
Если входное значение практически не меняется на всех из примера в вашем вопросе, это сломается.Ниже приведены примеры допустимого HTML, который не будет работать с регулярным выражением:
<link rel=apple-touch-icon>
<link rel='apple-touch-icon'>
<link href='...' rel='apple'>
<link
rel="apple">
<link rel = "apple">
и т. Д. И т. Д. Вы могли бы попытаться расширить регулярное выражение для удовлетворения некоторых из них, ноВы попадете в мир боли.
edit : извините, я только что заметил, что вы хотели href
.Вышесказанное все еще применимо, просто замените «rel» на «href», если необходимо.