2011-01-05 53 views
0

我有以下字符串:如何解析這個特定的html?

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

「類名」, 「變量」 & 「變量名稱」 是paramerters。

現在我想從該句中提取「ClassName」,「variable」和「Variable Title」。我怎樣才能做到這一點?

+0

對不起,我有一些問題,防止使用代碼標記。 – 2011-01-05 09:48:17

+4

您使用哪種語言來做到這一點? – 2011-01-05 10:02:37

+0

對不起,我使用Java/Groovy。 – 2011-01-06 02:14:09

回答

2

的Javascript:

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

哪裏str是你的標籤。

則...

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

請注意,你應該使用合適的HTML解析器這種事情,而不是正則表達式,但從來沒有介意:)

+0

+ 1爲額外的提示使用HTML解析器;) – philonous 2011-01-05 10:56:53

+0

@El Ronnoco:你的正則表達式幫助我。謝謝! – 2011-01-06 02:40:10

+0

@philonous:在這種情況下,我只需要解析一個句子,這樣我認爲使用HTML解析器就太過分了。 – 2011-01-06 02:42:56

1

這裏是一個Perl的解決方案:

#!/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來測試正則表達式。 – 2011-01-06 02:41:11