我正在尝试从名为“this”的HTML页面获取值 例如:
name="this" value="XXXX-XXX-xxxxx-xxxxx"
我尝试使用
Pattern pat = Pattern.compile("name=\"this\" value=\"(.*?)\"");
Matcher match = pat.matcher(sb);
if(match.matches())
return match.group();
但没有回来。我该怎么办?
答案 0 :(得分:1)
Pattern pat = Pattern.compile("name=\"this\" value=\"(.*?)\"");
Matcher match = pat.matcher(sb);
if(match.find())
return match.group(1);
另请注意,您需要检索“group(1)”,因为只需group()返回整个模式匹配。
答案 1 :(得分:0)
我认为你应该考虑更多的条件,比如
name = "this" id = "something" value = 'xxx'
那么你的模式不符合“name”和“=”'xxx'之间的空格以及属性“name”和属性“value”之间的字符串的要求,所以我认为模式应该像下面的形式:
private final String matchString = "name\\s*=\\s*(?:\"this\")|(?:'this')" +
".*?" +
"value\\s*=\\s*" +
"(?:\"([^\"]*)\") |(?: '([^']*)')";
private final Pattern pattern = Pattern.compile(matchString,Pattern.DOTALL|Pattern.COMMENTS);
Matcher matcher = pattern.matcher(content);
while(matcher.find())
{
System.out.println(matcher.group(1));
}
与此同时,需要从地板上提示!