title: Regex to remove multiple html nested tags
body: <p>I am having html sting like: </p>
  
  <pre><code>&lt;p dir="ltr"&gt;hello boys &lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;n&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;o&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;w&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt; &lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;b&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;o&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;l&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;b&gt;&lt;b&gt;d&lt;/b&gt;&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;/p&gt;
  </code></pre>
  
  <p>I want to keep the <code>&lt;p dir="ltr"&gt;</code>tag, one <code>&lt;b&gt;&lt;/b&gt;</code> containing all single bold characters. </p>
  
  <p>The result should be:</p>
  
  <pre><code>&lt;p dir="ltr"&gt;hello boys &lt;b&gt;now bold&lt;/b&gt;&lt;/p&gt;
  </code></pre>
  
  <p>The number of  <code>&lt;b&gt;&lt;/b&gt;</code> will not be fixed</p>
  
  <p>What regex can be followed in Java in order to do the same. Italics and underline will also be present other than bold</p>
  
  <p>If, the text has all 3 types of formatting say, bold, italic and underline together, the generated html is:</p>
  
  <pre><code>&lt;p dir="ltr"&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;bold&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt; &lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;italic&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;i&gt; &lt;/i&gt;normal &lt;u&gt;&lt;u&gt;&lt;u&gt;&lt;u&gt;&lt;u&gt;&lt;u&gt;&lt;u&gt;&lt;u&gt;underline&lt;/u&gt;&lt;/u&gt;&lt;/u&gt;&lt;/u&gt;&lt;/u&gt;&lt;/u&gt;&lt;/u&gt;&lt;/u&gt; &lt;b&gt;&lt;i&gt;&lt;u&gt;&lt;b&gt;&lt;i&gt;&lt;u&gt;&lt;b&gt;&lt;i&gt;&lt;u&gt;&lt;b&gt;&lt;i&gt;&lt;u&gt;&lt;b&gt;&lt;i&gt;&lt;u&gt;&lt;b&gt;&lt;i&gt;&lt;u&gt;&lt;b&gt;&lt;i&gt;&lt;u&gt;&lt;b&gt;&lt;i&gt;&lt;u&gt;&lt;b&gt;&lt;i&gt;&lt;u&gt;&lt;b&gt;&lt;i&gt;&lt;u&gt;&lt;b&gt;&lt;i&gt;&lt;u&gt;&lt;b&gt;&lt;i&gt;&lt;u&gt;&lt;b&gt;all&lt;/b&gt;&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;b&gt;&lt;i&gt;&lt;u&gt;&lt;b&gt;&lt;i&gt;&lt;u&gt;&lt;b&gt;&lt;i&gt;&lt;u&gt;&lt;b&gt;&lt;i&gt;&lt;u&gt;&lt;b&gt;&lt;i&gt;&lt;u&gt;&lt;b&gt;&lt;i&gt;&lt;u&gt;&lt;b&gt;&lt;i&gt;&lt;u&gt;&lt;b&gt;&lt;i&gt;&lt;u&gt;&lt;b&gt; &lt;/b&gt;&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;b&gt;&lt;i&gt;&lt;u&gt;&lt;b&gt;&lt;i&gt;&lt;u&gt;&lt;b&gt;&lt;i&gt;&lt;u&gt;&lt;b&gt;&lt;i&gt;&lt;u&gt;&lt;b&gt;&lt;i&gt;&lt;u&gt;&lt;b&gt;&lt;i&gt;&lt;u&gt;&lt;b&gt;&lt;i&gt;&lt;u&gt;&lt;u&gt;&lt;b&gt;together&lt;/b&gt;&lt;/u&gt;&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
  </code></pre>
  
  <p>After applying the regex suggested by traianus the output of this becomes (I have applied the formatting for bold, italics and underline):</p>
  
  <pre><code>&lt;p dir="ltr"&gt;&lt;b&gt;bold&lt;/b&gt; &lt;i&gt;italic&lt;/i&gt; normal &lt;u&gt;underline all together&lt;/u&gt;&lt;/p&gt;
  </code></pre>
  
  <p>So, <strong>underline all together</strong> should have b, i and u tags all together in order to show the proper formatting.</p>
  
  <p>The code:</p>
  
  <pre><code>String htmlString=Html.toHtml(mainEditText.getText());
          String boldRemoval = htmlString.replaceAll("&lt;b&gt;([a-z]*)&lt;/b&gt;", "#$1#").replaceAll("(&lt;b&gt;|&lt;/b&gt;)", "").replaceAll("#(.*)#", "&lt;b&gt;$1&lt;/b&gt;").replaceAll("#", "");
          String italicRemoval = boldRemoval.replaceAll("&lt;i&gt;([a-z]*)&lt;/i&gt;", "#$1#").replaceAll("(&lt;i&gt;|&lt;/i&gt;)", "").replaceAll("#(.*)#", "&lt;i&gt;$1&lt;/i&gt;").replaceAll("#", "");
          String underlineRemoval = italicRemoval.replaceAll("&lt;u&gt;([a-z]*)&lt;/u&gt;", "#$1#").replaceAll("(&lt;u&gt;|&lt;/u&gt;)", "").replaceAll("#(.*)#", "&lt;u&gt;$1&lt;/u&gt;").replaceAll("#", "");
          Log.d("solution", underlineRemoval);
  </code></pre>