html 태그 사이에 항목을 캡처하기 위해 Ruby 정규 표현식을 작성해야하는 과제를 완료하려고하는데 실제로 막혔습니다. 나는 어디에서나 검색을 해왔지만 지금까지 정규 표현식 만 배웠기 때문에 사용할 수 있다고 생각하지 않는 html 파서 및 기타 프로그램 사용에 대한 조언을 찾을 수 있습니다.html 태그 안에 여러 항목을 캡처하는 정규 표현식
예제 텍스트는 다음과 같습니다
/<span id="animal_display">.*?<[^>]+>(.*?)<\/[^>]+>.*<\/span>/m
:
<span id="animal_display">
<a href="/b/bird">Bird</a>
<a href="/c/cat">Cat</a>
<a href="/c/dog">Dog</a>
</span>
나는이 정규 표현식을 사용 Bird
Cat
Dog
을 포착하기 위해 노력하고있어, 나는 첫 번째 항목을 얻을 수 있어요 이것으로 세 가지를 모두 얻을 수는 있지만, 정규 표현식을 사용할 수 있기를 원하는 목록에는 정규 표현식을 사용할 수 있어야합니다. 세 가지 항목 :
/<span id="animal_display">\s*<[^>]+>\s*(.*?)<\/a>.\s*<[^>]+>\s*(.*?)<\/a>.\s*<[^>]+>\s*(.*?)<\/a>.<\/span>/
항목의 불특정 다수에 일할 수있는 더 일반화 된 정규 표현식이 있습니까? 모든 조언을 크게 주시면 감사하겠습니다.
HTML을 구문 분석하기 위해 regexes를 사용하지 마십시오. 당신의 인생은 슬픔이 될 것이며, 이미 당신을 위해 그것을 할 수있는 기존의 도구가 있습니다. –