2009-10-21 4 views
1

RegEx 전문가가 아닙니다. HTML 표에서 특정 번호를 추출해야합니다.
예 :RegEx : 소스 코드에서 번호 추출

<td>13</td><td> 
    </td><td align="right">29.543</td> 
    <td align="right">1.777</td> 
    <td align="right">2.588</td> 
</tr><tr><td><a href="player.php?p=84668" >Caterdamus</a></td> 
    <td>7</td><td> 
    Meister</td><td align="right">9.874</td> 
    <td align="right">1.716</td> 
    <td align="right">5.791</td> 
</tr><tr><td><a href="player.php?p=87216" >grappa</a></td> 
    <td>2</td><td> 
    </td><td align="right">1.044</td> 
    <td align="right">21</td> 
    <td align="right">146</td> 
</tr></table> 

패턴은 다음과 같습니다 : 내가 텍스트에서 숫자를 추출하고 변수로 저장하려면 어떻게

<td>13</td><td> 
<td>7</td><td> 
<td>2</td><td> 

. 힌트 : 숫자는 양의 정수입니다.

감사합니다 :)

+0

왜 이것을 다운 받습니까? 그것은 합법적 인 질문입니다. –

+0

@matt : 나는 down-voter *가 아니지만, 거의 항상 (정당한) 대답을 얻는 질문을 일주일에 몇 번씩 (때로는 하루에 한 번씩)하는 질문 유형 중 하나이기 때문에 의심 스럽다. * "이 정규 표현식을 사용하지 마십시오"* - 대답. –

답변

8

정규식을 사용하여 HTML이나 XML을 구문 분석하지 않습니다. 대신 HTML DOM 파서에 문서를로드합니다. find several open source ones here 수 있습니다. 나는 이것들을 보증 할 수 없다. 나는 Java에서 XML 이외의 다른 것을 사용 해본 적이 없다.

+0

이것은 셀 속성의 변화에 ​​강건하다는 장점이 있습니다. –

+0

이 게임은 결코 오래된 것처럼 보이지 않습니다 ... Q : "정규식으로 HTML을 어떻게 할 수 있습니까?"- A : "하지마." 놀랄 만한. :) – Tomalak

+1

물론 HTML 파서는 HTML 문서에서 많은 데이터를 처리하려는 경우 (특히 XPath를 사용할 수 있으면 멋지다)보다 우아한 방법이며, 더 쉬운 방법이기도합니다. 그러나 일부 숫자의 경우 너무 크다. – eWolf

2
<td>(\d+)</td> 

가 작업을 수행해야합니다.

+0

슬래시를 탈출하는 것을 잊지 마세요 ... – Tenner

3

내가 정확하게 자바 정규식 모르지만 정규 표현식의 구문은 여러 언어로 매우 유사하기 때문에 I'ld는

/<td>(\d+)<\/td><td>/ 

같은 것을 제안한다. 가 남아에

설명

  • (은 ... )
  • \d이 자리에게 토큰 하나 개 이상의 발행 수에 대한
  • + 숙박을 나타내는 정규식의 반환 변수의 내부 내용을 캡처 측면

긍정적 인 정수만 사용하면 부호와 소수점을 신경 쓸 필요가 없습니다.

+0

더 안전 할 수 있습니다. 양쪽에 공백을 추가하고/^ \ s *와 같은 sth를 얻을 수도 있습니다. (\ d +) <\/td> \ s * $/ –

관련 문제