Перед тем, как group()
матч, вам нужно вызвать find()
.
Попробуйте это так:
Pattern hostP = Pattern.compile("host=([a-z0-9./:]*)");
Matcher m = hostP.matcher(content);
if(m.find()) {
String match = m.group();
// ...
}
РЕДАКТИРОВАТЬ
и небольшую демонстрациюкоторый показывает, что содержит каждая группа совпадений:
Pattern p = Pattern.compile("host=([a-z0-9./:]*)");
Matcher m = p.matcher("host=http://sdf3452.domain.com/");
if (m.find()) {
for(int i = 0; i <= m.groupCount(); i++) {
System.out.printf("m.group(%d) = '%s'\n", i, m.group(i));
}
}
, которая будет печатать:
m.group(0) = 'host=http://sdf3452.domain.com/'
m.group(1) = 'http://sdf3452.domain.com/'
Как видите, группа (0), такая же, как group()
,содержит то, что соответствует всему шаблону.
Но следует понимать, что URL может содержать гораздо больше, чем вы определили в [a-z0-9./:]*
!