2010-01-18 1 views
0

가능한 중복 된 텍스트를 얻을 : RegEx matching HTML tags and extracting texthtml 태그 사이에

을 내가 <p></p>이든 같은 html 태그 사이의 텍스트를 얻을 필요가있다. 내 패턴은이

Pattern pText = Pattern.compile(">([^>|^<]*?)<"); 

누구나 더 좋은 패턴을 알 수 있습니다. 왜냐하면이 패턴은별로 유용하지 않기 때문입니다. 웹 페이지에서 콘텐츠 색인을 얻으려면 필요합니다.

고마워요.

+2

정규식이 좋지만 읽었습니까? http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 –

+3

옵션이 있어야합니다. * 닫을 투표 : 사용자가 정규식을 사용하여 HTML을 파싱합니다. * –

답변

5

그럼 당신이 내려 가고 있습니다. 그러나 HTML을 구문 분석하기 위해 정규식을 사용하지 말고 먼저 말하게하십시오. Here은 Java HTML Parser 목록입니다. 당신의 공상에 어울리는 API를 볼 때까지 주위를 둘러보고 대신 사용하십시오.

+0

TagSoup는 걱정할 HTML이 엉망인 경우 특히 유용합니다. – bmargulies

2

HTML을 구문 분석 할 때 정규식을 사용하지 마십시오.

대신 XPath을 사용하십시오 (HTML 형식이 올바른 경우). text() 함수를 사용하여 텍스트 노드를 매우 쉽게 참조 할 수 있습니다.

3

| 연산자가 작동하지 않거나 필요하지 않은 음수 세트 안에있는 것처럼 보입니다. 일치시키지 않으려는 문자를 지정하십시오.

Pattern pText = Pattern.compile(">([^<>]*?)<");