정규 표현식을 작성하여 HTML 소스의 URL 목록 href
및 anchor
텍스트를 추출하려고합니다. anchor
텍스트는 모든 값이 될 수 있습니다. 이 HTML을 정규식으로 구문 분석하려면 어떻게해야합니까?
<div class="links"><a rel="nofollow" target="_blank" href="http://url1.com" class="get-all">URL1</a><a rel="nofollow" target="_blank" href="http://url2.com" class="get-all">This is Url-2</a><a rel="nofollow" target="_blank" href="http://url3.com" class="get-all">This is Url-3</a><a rel="nofollow" target="_blank" href="http://url4.com" class="get-all">Sweet URL 4</a></div>
나는 다음과 같은 정규 표현식을 시도했지만 그것은
</a>
태그 앞에 모든 것을 잡고 실패 이후 작동하지 않습니다 :
하는 HTML 부분은 다음과 같이 간다.
preg_match_('/<a rel="nofollow" target="_blank" href="(.*)" class="see-all">(.*)<\/a>/', $source , $website_array);
필요한 데이터를 추출하는 데 사용할 수있는 정규식은 무엇입니까?
왜 그냥 HTML을 구문 분석 할 수 있습니까? – Blender
http : // stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags # answer-1732454 정규 표현식을 사용하여 HTML을 평가하지 말고 구문 분석하십시오. 가장 간단한 대답은 다음과 같습니다. HTML은 정규 언어가 아닙니다. – KingCrunch
얘들 아, 나는 "HTML을 파싱하기 위해 정규식을 사용하지 말라"는 것을 얻는다. 그러나 이것은 정말로 간단한 문제이다. Regexp를 사용하지 않기 위해서 모든 코드를 변경하고 싶지 않습니다. –