2011-01-05 3 views
0

내가 다음 문자열이 있습니다이 특정 HTML을 구문 분석하는 방법은 무엇입니까?

<span class="ClassName @variable" title="ClassName @variable">Variable Title</span> 

"클래스 이름", "변수"& "변수 제목을"paramerters이다.

이제 해당 문장에서 "ClassName", "variable"및 "Variable Title"을 추출하고 싶습니다. 어떻게해야합니까?

+0

죄송합니다. 코드 태그 사용을 방해하는 몇 가지 문제가 있습니다. –

+4

이 작업을 수행하기 위해 사용하는 언어는 무엇입니까? –

+0

죄송합니다, Java/Groovy를 사용합니다. –

답변

2

자바 스크립트 : str이 태그입니다

var matches = /<span class="(.*)" title="(.*)">(.*)<\/span>/.exec(str); 

. 그런 다음

... 당신이 정말로 정규식보다는 이런 종류의 일에 대한 적절한 HTML 파서를 사용하지만 여기에 :)

+0

+1은 HTML 구문 분석기를 사용하는 추가 힌트입니다.) – philonous

+0

@El Ronnoco : 정규식이 도와줍니다. 감사! –

+0

@philonous :이 경우 문장 하나만 파싱하면됩니다. 따라서 HTML 파서를 사용하는 것이 과잉이라고 생각합니다. –

1

을 신경 쓰지한다

matches[1]=class 
matches[2]=title 
matches[3]=tag content 

참고 펄 솔루션입니다 :

#!/usr/bin/perl 
use 5.10.1; 
use strict; 
use warnings; 
use Data::Dumper; 

my $str = q!<span class="ClassName @variable" title="ClassName @variable">Variable Title</span>!; 
my @list = $str =~ m#<span class="(\w+) @(\w+).*?>([\w\s]+)</span>#; 

say Dumper \@list; 

출력 :

$VAR1 = [ 
      'ClassName', 
      'variable', 
      'Variable Title' 
     ]; 
+0

감사합니다. 하지만 불행히도 Perl을 사용하여 정규식을 테스트 할 수는 없습니다. –

관련 문제