正規表現で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 ===============================================
正規表現についてもっと知りたいですか? この最高の古典的な本を強くお勧めします–「正規表現の習得」
+
+