Как удалить строку динамических символов из строки?

Я новичок в разработке Android, и я пытаюсь удалить строку динамических символов из строки. Моя строка:

"Beginning of String....<img src="http://webaddress.com" height="1" width="1"/>" 

Я хочу удалить «& lt;», «& gt;» и все, что между ними. Все, что я хочу, это «Начало строки …» Пока я пробовал это без успеха.

 description = description.replaceFirst("(?s)(&lt)(.*?)(&gt)","$1$3"); 

Также я попробовал это на подобной подобной строке, и он работал нормально, поэтому я не понимаю, что я делаю неправильно.

 description = description.replaceFirst("(?s)(<sub>)(.*?)(</sub>)","$1$3"); 

Мои занятия

 public class RssReader { private final static String BOLD_OPEN = "<B>"; private final static String BOLD_CLOSE = "</B>"; private final static String BREAK = "<BR>"; private final static String ITALIC_OPEN = "<I>"; private final static String ITALIC_CLOSE = "</I>"; private final static String SMALL_OPEN = "<SMALL>"; private final static String SMALL_CLOSE = "</SMALL>"; public static List<JSONObject> getLatestRssFeed(){ String feed = "http://feeds.feedburner.com/MetalMarketCommentary"; //http://globoesporte.globo.com/dynamo/futebol/times/vasco/rss2.xml //http://feeds.feedburner.com/GoldMoneyGoldResearch + //http://feeds.feedburner.com/GoldsilvercomNews + //http://feed43.com/7466558277232702.xml //http://feeds.feedburner.com/SilverGoldDaily //http://feeds.feedburner.com/MetalMarketCommentary //http://link.brightcove.com/services/player/bcpid1683318714001?bckey=AQ~~,AAAAC59qSJk~,vyxcsD3OtBPHZ2UIrFX2-wdCLTYNyMNn&bclid=1644543007001&bctid=1854182861001 RSSHandler rh = new RSSHandler(); List<Article> articles = rh.getLatestArticles(feed); Log.e("RSS ERROR", "Number of articles " + articles.size()); return fillData(articles); } private static List<JSONObject> fillData(List<Article> articles) { List<JSONObject> items = new ArrayList<JSONObject>(); for (Article article : articles) { JSONObject current = new JSONObject(); try { buildJsonObject(article, current); } catch (JSONException e) { Log.e("RSS ERROR", "Error creating JSON Object from RSS feed"); } items.add(current); } return items; } private static void buildJsonObject(Article article, JSONObject current) throws JSONException { String title = article.getTitle(); String description = article.getDescription(); description = description.replaceFirst("(?s)(<sub>)(.*?)(</sub>)","$1$3"); int start = description.indexOf(".&"); description= description.substring(0, start); String date = article.getPubDate(); String imgLink = article.getImgLink(); StringBuffer sb = new StringBuffer(); sb.append(BOLD_OPEN).append(title).append(BOLD_CLOSE); sb.append(BREAK); sb.append(description); sb.append(BREAK); sb.append(SMALL_OPEN).append(ITALIC_OPEN).append(date).append(ITALIC_CLOSE).append(SMALL_CLOSE); current.put("text", Html.fromHtml(sb.toString())); current.put("imageLink", imgLink); } } 

XML Я разбираюсь

 <item> <title>Gold Market Recap Report</title> <link>http://feedproxy.google.com/~r/MetalMarketCommentary/~3/jGYtkXdSKWs/mid-session-gold_703.html</link> <description>&lt;img src="http://www.cmegroup.com/images/1x1trans.gif?destination=http://www.cmegroup.com/education/market-commentary/metals/2012/09/mid-session-gold_703.html" alt=""/&gt;For the week December gold forged a trading range of roughly $37 an ounce. With gold prices attimes seemingly on the rocks and poised for a downside washout it was a change of pace to see afresh upside breakout in the Friday morning trade....&lt;img src="http://feeds.feedburner.com/~r/MetalMarketCommentary/~4/jGYtkXdSKWs" height="1" width="1"/&gt;</description> <pubDate>Fri, 21 Sep 2012 19:50:37 GMT</pubDate> <guid isPermaLink="false">http://www.cmegroup.com/education/market-commentary/metals/2012/09/mid-session-gold_703.html?source=rss</guid> <dc:date>2012-09-21T19:50:37Z</dc:date> <feedburner:origLink>http://www.cmegroup.com/education/market-commentary/metals/2012/09/mid-session-gold_703.html?source=rss</feedburner:origLink> </item> 

      String string = "Beginning of String....&lt;img src=\"http://webaddress.com\" height=\"1\" width=\"1\"/&gt;"; //Escape whatever has to be escaped System.out.println(string); int start = string.indexOf("&"); int end = string.lastIndexOf("&"); String temp = string.substring(start, (end+3)); string = string.replace(temp, ""); System.out.println(string); 

    Это приведет к удалению чего-либо между & lt и & gt;, включая их.

    Для этого вам не нужно использовать регулярные выражения.

    Создайте метод, который найдет и удалит подстроки, которые начинаются с &lt; И заканчивается &gt; И запустить его в цикле.

     String mstring = "Beginning of String....&lt;img src="http://webaddress.com" height="1" width="1"/&gt;"; // You'll need to escape the double quotes if you're explicitly setting the string public boolean containsTags() { boolean lt, gt; lt = mstring.contains("&lt;"); gt = mstring.contains("&gt;"); return (lt || gt); } public void removeTags() { int indexof_lt, indexof_gt; indexof_lt = mstring.indexOf("&lt;"); indexof_gt = mstring.indexOf("&gt;"); String str_first, str_last; str_first = mstring.substring(0, indexof_lt); str_last = mstring.substring(indexof_gt + indexof_gt.length); mstring = str_first + str_last; } public void removeAllTags() { while(containsTags) { removeTags(); } } в String mstring = "Beginning of String....&lt;img src="http://webaddress.com" height="1" width="1"/&gt;"; // You'll need to escape the double quotes if you're explicitly setting the string public boolean containsTags() { boolean lt, gt; lt = mstring.contains("&lt;"); gt = mstring.contains("&gt;"); return (lt || gt); } public void removeTags() { int indexof_lt, indexof_gt; indexof_lt = mstring.indexOf("&lt;"); indexof_gt = mstring.indexOf("&gt;"); String str_first, str_last; str_first = mstring.substring(0, indexof_lt); str_last = mstring.substring(indexof_gt + indexof_gt.length); mstring = str_first + str_last; } public void removeAllTags() { while(containsTags) { removeTags(); } }