Как проверить HTML-тег с помощью регулярного выражения
Шаблон регулярного выражения HTML-тега
<("[^"]*"|'[^']*'|[^'">])*>
Описание
< #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 ">"
Тег HTML должен начинаться с открывающего тега «без одинарных или двойных кавычек. Наконец, закройте закрывающим тегом «>»
Пример регулярного выражения 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(); } }
HTML-тег, соответствующий:
Модульный тест - результат
HTMLTag is valid : , true HTMLTag is valid : , true HTMLTag is valid : , true HTMLTag is valid : , true HTMLTag is valid : , true HTMLTag is valid :
, true HTMLTag is valid :
, true HTMLTag is valid : , true HTMLTag is valid : , true HTMLTag is valid : ") PASSED: ValidHTMLTagTest("") PASSED: ValidHTMLTagTest("") PASSED: ValidHTMLTagTest("") PASSED: ValidHTMLTagTest("") PASSED: ValidHTMLTagTest("
") PASSED: ValidHTMLTagTest("
") PASSED: ValidHTMLTagTest("") PASSED: ValidHTMLTagTest("") PASSED: InValidHTMLTagTest("") PASSED: InValidHTMLTagTest(" >") =============================================== com.example.regex.HTMLTagValidatorTest Tests run: 12, Failures: 0, Skips: 0 =============================================== =============================================== example Total tests run: 12, Failures: 0, Skips: 0 ===============================================
Хотите узнать больше о регулярных выражениях? Настоятельно рекомендую эту лучшую и классическую книгу - «Освоение регулярных выражений»
+
+