我的正则表达式在java中的问题

时间:2010-10-05 10:31:26

标签: java regex

大家好我想从下面给出的文字中找出一个简单的regEx:

<b>Name:</b> Photomatix.Pro.v4.0.64bit-FOSI<br />

我基本上只想输出和存储 Photomatix.Pro.v4.0.64bit-FOSI ,即 中的实际值,但是当我像这样定义它时:

private static final String REG_NAME = "<b>Name:</b>(.*)<br />";

它实际上存储并输出整个<b>Name:</b> Photomatix.Pro.v4.0.64bit-FOSI<br />

关于如何从上面的xml文本中提取值的任何想法?提前欢呼

4 个答案:

答案 0 :(得分:6)

这应该有效:

  final String REG_NAME = "<b>Name:</b>(.*)<br />";

        String text = "<b>Name:</b> Photomatix.Pro.v4.0.64bit-FOSI<br />";

        Pattern pattern = Pattern.compile(REG_NAME);

        Matcher matcher = pattern.matcher(text);

        if (matcher.find()) {
            System.out.println(matcher.group(1));
        }

答案 1 :(得分:1)

String r = "/b>(.*)<b";

Pattern p = Pattern.compile( r );
Matcher m = p.matcher( "<b>Name:</b> Photomatix.Pro.v4.0.64bit-FOSI<br />" );

if ( m.find() )
{
  System.out.println( "found: " + m.group(1) );
}

答案 2 :(得分:0)

(我现在手头没有Java编译器所以我无法验证答案。因此,这不是最终答案,但是......)

如果你真的想用正则表达式来做,你应该看看Java正则表达式类中的匹配器和组。

答案 3 :(得分:0)

好吧,我不认为用正则表达式解析html是个好主意,你应该使用一些html java解析器。如果你想使用正则表达式,你可以在这里查看一些例子:Regular Expressions