正则表达式使用java从数据之间提取子字符串

时间:2013-07-17 16:10:14

标签: java html regex

String line = "asdasdasdasd <meta name=\"generator\" content=\"WordPress 3.5.2\" /> asdasdasdasdasd";
Pattern p = Pattern.compile("<meta name=\"generator\" content=\"WordPress\\s+([\\d.]+)\" />");
Matcher m = p.matcher(line);
if(m.matches())
     System.out.println(m.group(1));
else
     System.out.println("not found");

我使用的正则表达式没有给出所需的结果。我想要提供字符串的wordpress版本。

2 个答案:

答案 0 :(得分:1)

Matcher#matches()匹配字符串的开头。因此,您需要为完整字符串构建正则表达式。

或者,您可以将Matcher#find()与正则表达式一起用于字符串的相关部分:

Pattern p = Pattern.compile("content=\"WordPress\\s+([\\d.]+)\"");
Matcher m = p.matcher(line);
if(m.find())
     System.out.println(m.group(1));
else
     System.out.println("not found");

答案 1 :(得分:0)

你必须逃避点并接受更多数字以防万一

Pattern p = Pattern.compile("WordPress\\s+([\\d+\\.]+)");