0
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 版本。

4

2 回答 2

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");
于 2013-07-17T16:12:52.827 回答
0

您必须转义点并接受更多数字以防万一

Pattern p = Pattern.compile("WordPress\\s+([\\d+\\.]+)");
于 2013-07-17T16:11:45.593 回答