Я использую while(matcher.find())
для просмотра и извлечения вещей из файла. Мне было интересно, как я мог бы получить номер строки из этого цикла, если бы я знал, что индекс того, что я нашел, находится в matcher.start()
.
Я в замешательстве, может кто-нибудь объяснить, пожалуйста?
String expr = "<[^<?!>]+>";
String[] response = new String[5];
Pattern p = Pattern.compile(expr);
Matcher m = p.matcher(xmlDocument);
while (m.find()) {
// System.out.println(m.group() + " located at " + m.start());
// txtMatches.append(m.group() + " located at " + m.start() + "\n");
if (itemStack.getCount() == 0 && m.group().contains("</")) {
response[0] = "Orphan closing tag" ;
response[1] = stripUnwantedChars(m.group(), true);
response[2] = String.valueOf(m.start()); //right here is where i want to return line number
return response;
}
//rest of code
itemStack
- это стек выдвинутых совпадений, а затем я сравниваю их, чтобы увидеть, нет ли в стеке больше элементов, но есть совпадение с закрывающим тегом.