【发布时间】:2015-11-08 09:00:09
【问题描述】:
我有以下 HTML 字符串:
<span class='together'>line one,<br><span class='indent'>line two.</span><br>Line three,<br><span class='indent'>line four,<br>line five,<br>line six,<br>line seven;<br>line eight.<br>Line nine;<br>line ten,<br>line eleven,<br>line twelve.</span><br>Line thriteen,<br><span class='indent'>line fourteen,<br>line fifteen,<br>line sixteen,<br>line seventeen,<br>line eighteen.</span></span>
我正在尝试找到一个正则表达式,该表达式将找到介于 <span class='indent'> 和关闭 </span> 之间的所有 <br>。 <span class='together'> 封装了整个问题,应该被忽略。
目前我能做的最好的事情是:<span class='indent'>.*?(<br>).*?<\/span> 这根本不起作用。这个抓取的第一个 <br> 在 <span> 之外,然后它跳过了我想要的一堆其他 <br> (See here)。
这可能吗?我应该改用<span class='indent'>(.*?)\<\/span>,然后再解析捕获的组吗?
如您所知,我的正则表达式知识非常有限。
【问题讨论】:
-
一般情况下,不要使用正则表达式解析HTML,使用解析器。
-
您使用哪种语言?
-
这很快。感谢该链接@JonathonReinhart :)
-
@hjpotter92 用于 Android 应用程序的 Java。我从 JSON 转储中获取此内容,然后尝试将(格式化)字符串放入 TextView。 Html.fromHtml 忽略跨度,我认为您不能将自己的样式添加到文本视图以获取跨度。