Comment valider une balise HTML avec une expression régulière

Comment valider la balise HTML avec une expression régulière

Modèle d'expression régulière de balise HTML

<("[^"]*"|'[^']*'|[^'">])*>

La description

<        #start with opening tag "<"
 (      #   start of group #1
   "[^"]*"  #   allow string with double quotes enclosed - "string"
   |        #   ..or
   '[^']*'  #   allow string with single quote enclosed - 'string'
   |        #   ..or
   [^'">]    #   cant contains one single quotes, double quotes and ">"
 )      #   end of group #1
 *      # 0 or more
>        #end with closing tag ">"

Balise HTML, commencez par une balise d'ouverture «sans guillemets simples ou doubles. Enfin, terminez par une balise de fermeture ">"

Exemple d'expression régulière Java

package com.example.regex;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class HTMLTagValidator{

   private Pattern pattern;
   private Matcher matcher;

   private static final String HTML_TAG_PATTERN = "<(\"[^\"]*\"|'[^']*'|[^'\">])*>";

   public HTMLTagValidator(){
      pattern = Pattern.compile(HTML_TAG_PATTERN);
   }

  /**
   * Validate html tag with regular expression
   * @param tag html tag for validation
   * @return true valid html tag, false invalid html tag
   */
  public boolean validate(final String tag){

      matcher = pattern.matcher(tag);
      return matcher.matches();

  }
}

Balise HTML qui correspondent:

1. «», « ’>»
2. “" - balise d'ouverture simple> n'est pas autorisé, doit être entouré de guillemets simples ou doubles

Test unitaire - HTMLTagValidatorTest