2011-01-05 50 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