2013-03-03 93 views
0

我需要一个“Java RegEx”标签的html标签,但它不起作用。为什么?Java正则表达式CodeTitle

Pattern.compile("\\<td class=\"codeTitle\">(.*)\\</td>"); 

Matcher m = p.matcher("<td class="codeTitle">Java RegEx</td>"); 
+0

什么不行?要获得'(。*)'的值,你需要使用['Matcher.group()' - 方法](http://docs.oracle.com/javase/1.5.0/docs/api /java/util/regex/Matcher.html#group(int))。 – 2013-03-03 11:14:52

+0

Pattern p = Pattern.compile(“\\ (。*)\\”); Matcher m = p.matcher(“ Java RegEx”); 此代码工作,但当我使用; Pattern.compile(“\\ (。*)\\”); Matcher m = p.matcher(“ Java正则表达式”); 无法正常工作:s – kibar 2013-03-03 11:16:37

+0

努力清除*确切*不起作用,为什么不行,以及您期望它做什么。 – 2013-03-03 11:18:45

回答

3

您需要致电m.find()检查是否找到任何匹配。如果找到匹配项,则可以使用m.group(1)访问它们。

此外,我想你忘了逃避主题字符串。

Pattern.compile("<td class=\"codeTitle\">(.*?)</td>"); //lazy matching is better in matching html tags 

Matcher m = p.matcher("<td class=\"codeTitle\">Java RegEx</td>"); // you didn't escape that 

if(m.find()){ 
    //do something with m.group(1) which contains "Java Regex" 
} 
else { 
    //no matches found 
} 
+0

非常感谢你的工作 – kibar 2013-03-03 11:28:08