Как получить ссылку на гиперссылку, которая идет после определенного слова?

#regex #extract #href

#регулярное выражение #извлечь #href

Вопрос:

Итак, у меня есть строка, взятая из тела электронного письма, которая содержит гиперссылку. Внутри этой гиперссылки находится ссылка href, которую я пытаюсь извлечь. Следующая строка — это строка, о которой идет речь:

 View Documents: <a>MonthlyQuarterlyReport</a>
  

(Я не знаю, как создавать гиперссылки в этой теме, поэтому представьте, что MonthlyQuarterlyReport — это желаемая гиперссылка, содержащая ссылку href).

Моя цель — извлечь ссылку на ссылку в указанной выше гиперссылке. Я предполагаю, что идеальным подходом для этого является чтение части строки с надписью «Documents: «, а затем чтение первой ссылки, которую вы найдете после этого. В качестве дополнительного примечания, текст самой гиперссылки не является статическим элементом, он будет часто меняться и не будет каждый раз называться «Ежемесячно-квартальный отчет». Итак, я предполагаю, что мой вопрос здесь в том, как мне извлечь первую ссылку href, которая появляется после элемента «Documents: » в данном конкретном случае?

Это то, что у меня есть до сих пор:

 (?<=href=").*.com(?=">)
  

Спасибо за любую помощь!

Ответ №1:

Я полагаю, вы хотите захватить ссылку, связанную с текстом.

Предполагая, что вы используете JavaScript и у вас есть html-источник электронной почты. Допустим, у вас есть,

 body = 'Documents: This is a <a class="someCSSClass" href="http://this-is-link">MonthlyQuarterlyReport</a> of 2020<a class="someCSSClass" href="htpps://new-link">New Link</a>'
  

Итак, чтобы извлечь href

 arrMatch = body.match(/<as class="someCSSClass"s href="([^"]*?)">/)
  

arrMatch будет

 [
   0: 'Documents: This is a <a class="someCSSClass" href="http://this-is-link">'
   1: 'http://this-is-link'
]
  

и arrMatch[1] будет иметь вашу ссылку