Я хотел сопоставить гиперссылку с разными Атрибуты как href, rel, target, media. Я ищу определенное регулярное выражение, содержащее эти атрибуты (rel, носители необязательны).Регулярное выражение для гиперссылки
Как я вставляю этот код в свой парсер, я не могу позволить себе использовать класс DOM, поэтому я ищу решение с регулярным выражением.
Позвольте мне ниже пример, чтобы объяснить:
<a href="http://www.google.com" rel="nofollow" target="_blank">Google</a>
<a href="http://www.google.com" rel="follow" target="_blank">Google</a>
<a href="http://www.google.com" target="_blank">Google</a>
Это то, что я получил в настоящее время
/<a\s?(href=)?('|")(.*)('|") (rel='|")(nofollow|follow)('|") target=('|")_blank('|") (media='|")(.*?)('|")>(.*)<\/a>/
Используйте этот HTML-парсер для этого, а не для регулярного выражения! (Я уверен, что вы можете «позволить себе») – nickb
Не подскажете, как это будет лучше, чем регулярное выражение. – Som
Ваше регулярное выражение очень подвержено ошибкам и, вероятно, не сможет представить все возможности ввода, которые вы получите, особенно не в одном регулярном выражении. Между тем, парсер HTML всегда сможет обрабатывать любой (действительный) ввод, который вы ему даете, и вы сможете легко извлекать информацию, которую ищете. Если вы захотите использовать парсер HTML, такой как встроенный класс DOMDocument в PHP, я могу добавить ответ, показывающий, как вы можете достичь своих целей. – nickb