Eu quero corresponder o texto entre as tags de cabeçalho. Se o texto está combinando entre tags de cabeçalho, então é válido, mas se não for mais, então não é. Por exemplo,
String text_to_match= "abcd";
String allText = "<h1><a></a>abcd</h1>";----return true
String allText = "<h1 class='ssss'><a></a>abcd</h1>";----return true
String allText = "<h1 class='ssss'><a>dsdsd</a>abcd</h1>";---return false
String allText = "<h1 class='ssss'><a></a><span></span>abcd</h1>";----true
String allText = "<h1 class='ssss'><a></a><span>s</span>abcd</h1>";----false
String allText = "<h1 class='ssss'><a>ddd</a><any-tag>sss</any-tag>abcd</h1>";---false
<headertag 1-6> any tag may come but no text in between (text_to_match) </header tag 1-6>
Portanto, nenhum texto é permitido entre qualquer tag, exceto o texto a ser correspondido. Tags vazias são permitidas. O texto deve estar entre as tags de cabeçalho <h1>-----</h1>
.
Eu procedi da seguinte forma, mas estou preso:
Pattern p_anchor = Pattern.compile("<h[1-6](?:(?!</h).)*>(\s|( ))*(.*>)"+anchor+"(\s| )*<.*>(\s|( ))*</.*><(?:(?!/h).)*/h[1-6]>");
Matcher m_anchor = p_anchor.matcher(allText);
Tags regular-expression