使用RegEx在html源代码中查找特定字符串

时间:2015-04-11 17:34:22

标签: java android html regex

很简单。

我只想从unicode HTML源中提取一些String值。

原始来源如下所示:

<div id="encompass">
    <tr class="lineonoff">
                <td class="xsmall">27</td>
                <td>DATE</td>
                <td class="left">TITLE</td>
                <td>STATUS</td>
                <td><a href="javascript:viewData(ID, '')" class="button purple small"><span>A</span></a></td>
              </tr>
              <tr class="lineonoff">
                <td class="xsmall">28</td>
                <td>DATE</td>
                <td class="left">TITLE</td>
                <td>STATUS</td>
                <td><a href="javascript:viewData(ID, '')" class="button purple small"><span>B</span></a></td>
              </tr>
              <tr class="lineonoff">
                <td class="xsmall">29</td>
                <td>DATE</td>
                <td class="left">TITLE</td>
                <td>STATUS</td>
                <td><a href="javascript:viewData(ID, '')" class="button purple small"><span>C</span></a></td>
              </tr>
</div>

我想提取TITLE,DATE,STATUS,ID。

我尝试了许多可能的RegEx变体,但最后失败了..

 final Pattern pattern = Pattern.compile(PATTERN_STRING);
Matcher matcher = pattern.matcher(result.toString());

如何提取这些值?谢谢!

1 个答案:

答案 0 :(得分:1)

首先,你should not use a regex to parse HTML。 首选use a parser

但是,经过所有这些考虑,这样的东西可能会成功:

<tr[\s\S]*?class\="left">([^<]*)[\s\S]*?<td>([^<]*)[\s\S]*?viewData\(([^\(]*),

https://regex101.com/r/lZ6rE0/1