매일 같이 게시 됨 : 정규 표현식으로 HTML을 처리 할 수 없습니다. Can you provide some examples of why it is hard to parse XML and HTML with a regex?
기본 정규 표현식과 함께 sed로 제한된 도구의 경우 두 배가됩니다.
당신이 가지고있는 입력의 종류가 매우 제한적이어서 모든 링크가 똑같은 형식으로되어 있다면 가능할 수도 있습니다. 그럴 경우 해당 형식의 예를 게시해야합니다. 그러나 일반적인 HTML 페이지의 경우에는 수행 할 수 없습니다.
ETA는 귀하의 예제를 제공 : 가장 단순한 수준에서 각 URL은 한 줄에 이미 있기 때문에, 당신은 당신이 원하지 않는 바로 보는 사람을 선택하고 비트를 멀리 던질 수 :
#!/bin/sed -f
s/^<td><a href="\(.*\)">.*<\/a><\/td>$/\1/p
d
그러나 이것은 HTML 인코딩 형식으로 URL을 남겨 둡니다. 이 파일을 생성 한 스크립트가 해당 URL을 HTML 인코딩하는 경우 lt/gt/quot/amp 엔티티 참조의 인스턴스를 '<> "&"일반 문자 형식으로 바꿔야합니다. 실제로 귀하가 만날 가능성이있는 사용자 중 하나만 &/amp입니다. URL에 매우 일반적으로 표시됩니다.
하지만 실제로 HTML 인코딩이 전부가 아닙니다. 다른 HTML 엔터티 참조가있을 수 있습니다. , eacute (지금 우리는 IRIs가 유효하다) 또는 숫자 참조 (십진수와 십진수 모두)와 같은 유니 코드를 포함하여 문자에 대한 2 백만 가지의 잠재적 인 인코딩 형식이있다. 지루함 속에서 방대한 운동을한다.
생성자 스크립트가 출력하지 않는다면 HTML 파서가 여전히 가장 좋습니다. (또는 잘 구성된 XHTML을 알고 있다면 간단한 XML 파서를 사용할 수 있습니다.이 라이브러리는 현대 언어의 표준 라이브러리에 내장되어 있습니다.)
당신이 더 구체적 일 수 있다면 도움이 될 것입니다. 샘플 입력 중 일부는 어떤 모습입니까? –