从现有字符串中提取两个字符串

时间:2014-04-12 09:12:43

标签: java android regex string substring

我正在尝试为Android创建一个简单的rss阅读器,它基本上正在运行。问题是,为了显示文章的内容,我使用rss中的<description>标签。它似乎没问题,但是有一个<img>标签通常会因为屏幕较大而脱离屏幕。 我使用getSettings() 调整大小来适应屏幕,但这也会对文本的size造成影响。

所以我想从描述中提取文本和img标记,并将它们存储到两个不同的字符串中,以便能够更轻松地格式化它们。我尝试使用正则表达式和我发现的一些java方法,但无法使其正常工作。

描述标签以这种方式形成:

 <p style="text-align: justify;"><img src="http://url" alt="something here" style="display: block; margin-left: auto; margin-right: auto;" />a block of text goes here</p>

所以我想要两个字符串:

str1 = <p style="text-align: justify;">a block of text goes here</p>

str2 = <img src="http://url" alt="something here" style="display: block; margin-left: auto; margin-right: auto;" />

最好的方法是什么?

2 个答案:

答案 0 :(得分:2)

试试这个

String s1 = s.replaceAll(".+(<img.+?/>).+", "$1");
String s2 = s.replaceAll("(.+)<img.+?/>(.+)", "$1$2");

答案 1 :(得分:1)

如果格式是坚定的,简单的解决方案将在前两个'>'字符位置分割成三个字符串,然后将第三个和第一个连接到str1。 (但它假定'>'不会出现在图片alt描述中)