Advertisement
Guest User

Untitled

a guest
Jun 3rd, 2016
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.05 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4. import java.util.regex.Matcher;
  5. import java.util.regex.Pattern;
  6.  
  7. public class SemanticalHTML {
  8.     public static void main(String[] args) throws IOException {
  9.         BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
  10.         Pattern openPattern = Pattern.compile("(\\s*)?<div\\s*(.+)?(?:\\s*id\\s*=\\s*\"|\\s*class\\s*=\\s*\")\\s*([^\"]+\\s*)\"\\s*(.+)?>");
  11.         Pattern closePattern = Pattern.compile("(\\s*)?(?:<\\s*\\/div\\s*>)\\s*<(?:[!-]+)\\s*(\\w+)\\s*(?:[-]+)>");
  12.         String line = "";
  13.         StringBuilder stringBuilder = new StringBuilder(line);
  14.         while (!(line = bf.readLine()).equals("END")) {
  15.             Matcher openMatcher = openPattern.matcher(line);
  16.             Matcher closeMatcher = closePattern.matcher(line);
  17.             //open tags
  18.             if (openMatcher.find()) {
  19.                 if (openMatcher.group(1) != null) {
  20.                     stringBuilder.append(openMatcher.group(1));
  21.                 }
  22.                 stringBuilder.append("<" + openMatcher.group(3).trim());
  23.                 if (openMatcher.group(2) != null) {
  24.                     stringBuilder.append(" " + openMatcher.group(2).trim());
  25.                 }
  26.                 if (openMatcher.group(4) != null) {
  27.                     stringBuilder.append(" " + openMatcher.group(4).trim());
  28.                 }
  29.                 stringBuilder.append(">");
  30.             }
  31.             //close tags
  32.             else if (closeMatcher.find()) {
  33.                 String frontPart = "";
  34.                 if (closeMatcher.group(1) != null) {
  35.                     frontPart = closeMatcher.group(1);
  36.                 }
  37.  
  38.                 stringBuilder.append(frontPart);
  39.                 stringBuilder.append("</" + closeMatcher.group(2) + ">");
  40.             } else {
  41.                 stringBuilder.append(line);
  42.             }
  43.  
  44.             stringBuilder.append(System.getProperty("line.separator"));
  45.         }
  46.  
  47.         System.out.println(stringBuilder);
  48.     }
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement