Итак, у меня есть IP-адрес в виде строки. У меня есть это регулярное выражение (\d{1-3})\.(\d{1-3})\.(\d{1-3})\.(\d{1-3})
Как распечатать соответствующие группы?Соответствует регулярному выражению в java
Спасибо!
Итак, у меня есть IP-адрес в виде строки. У меня есть это регулярное выражение (\d{1-3})\.(\d{1-3})\.(\d{1-3})\.(\d{1-3})
Как распечатать соответствующие группы?Соответствует регулярному выражению в java
Спасибо!
import java.util.regex.*;
try {
Pattern regex = Pattern.compile("(\\d\\{1-3\\})\\.(\\d\\{1-3\\})\\.(\\d\\{1-3\\})\\.(\\d\\{1-3\\})");
Matcher regexMatcher = regex.matcher(subjectString);
while (regexMatcher.find()) {
for (int i = 1; i <= regexMatcher.groupCount(); i++) {
// matched text: regexMatcher.group(i)
// match start: regexMatcher.start(i)
// match end: regexMatcher.end(i)
}
}
} catch (PatternSyntaxException ex) {
// Syntax error in the regular expression
}
Если вы используете шаблон и Искатель, чтобы сделать ваше регулярное выражение, то вы можете попросить Искатель для каждой группы с помощью метода group(int group)
Итак:
Pattern p = Pattern.compile("(\\d{1-3}).(\\d{1-3}).(\\d{1-3}).(\\d{1-3})");
Matcher m = p.matcher("127.0.0.1");
if (m.matches()) {
System.out.print(m.group(1));
// m.group(0) is the entire matched item, not the first group.
// etc...
}
Вы не должны поймать Исключение PatternSyntaxException, если ваше регулярное выражение жестко запрограммировано (например, оно есть). Если в синтаксисе есть ошибка, вы найдете его при первом запуске программы. –
@mmyers: сила привычек Я предполагаю, но вы правы. –
Не должен ли счетчик начинаться с 0? –