текст парсит правильно,но валик пишет,что надо обратить внимание на внутренние теги import java.util.Map; import java.util.regex.*; import java.util.*; import java.io.*; public class Solution { public static void main(String[] args) throws IOException { String sit="/storage/emulated/0/f.f.1\n/storage/emulated/0/f.f\n/storage/emulated/0/f.f.12\n"; args=new String[1];args[0]="b"; String t=args[0]; BufferedReader b=new BufferedReader(new InputStreamReader(new ByteArrayInputStream(sit.getBytes()))); //BufferedReader b=new BufferedReader(new InputStreamReader((System.in))); String n1=b.readLine(); b.close(); BufferedReader fis=null; try{ fis=new BufferedReader( new FileReader(n1)); }catch(FileNotFoundException f){} String fil="\n\n"; fil="about Leela <b\n>Turanga Leela\nSupergirl";fis=new BufferedReader(new InputStreamReader(new ByteArrayInputStream(fil.getBytes()))); Pattern pt = Pattern.compile("(</? *)("+t+")"); ArrayList stack=new ArrayList(); String name; while((name=fis.readLine())!=null){ Matcher mtch=pt.matcher(name); int start=0;int end=name.length()-1; while(mtch.find()){ String ta=mtch.group(1); if(ta.equals("<")){ stack.add(true); if (stack.size()==1){ start=mtch.start(1);//System.out.println(ta+start); } }else if(ta.equals("</")){ stack.remove(stack.size()-1); } if(stack.size()==0){ System.out.println(name.substring(start,mtch.end(2)+1)); } } if (stack.size()>0){ System.out.println(name.substring(start,name.length())); } }fis.close(); } }