Ребят, вопрос следующий - возможно ли просто регуляркой решить эту задачу или только, через рекурсивную проверку каждой области на наличие в ней подстроки с совпадением?
package com.javarush.task.task19.task1918;
/*
Знакомство с тегами
*/
import java.io.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Solution {
public static void main(String[] args) throws IOException
{
String tmp = "1";
InputStream sysIn = new ByteArrayInputStream(tmp.getBytes());
System.setIn(sysIn);
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String filesName = in.readLine();
in.close();
BufferedReader input = new BufferedReader( new FileReader(filesName));
StringBuilder allText = new StringBuilder();
while (input.ready())
{
allText.append(input.readLine());
}
String format = "<"+args[0]+"[^>&&.]*?>.+?<\\/"+args[0]+">";
Pattern pattern = Pattern.compile(format);
Matcher matcher = pattern.matcher(allText);
while(matcher.find())
System.out.println(matcher.group());
input.close();
}
public static enum Type
{
ADDED, //добавлена новая строка
REMOVED, //удалена строка
SAME //без изменений
}
public static class LineItem
{
public Type type;
public String line;
public LineItem(Type type, String line)
{
this.type = type;
this.line = line;
}
}
}