创建模式到php preg_match_all

时间:2012-09-27 09:39:27

标签: php html regex preg-match-all

我正在使用preg_match_all(),我的问题是我无法创建我想要的模式。源文本示例:

<td align='left'>
    <span style='font-size: 13px; font-family: Verdana;'><span>
</td>
<td>
    <a style='color: #ffff00' rel='gb_page_fs[]' title='Parodyk kitiems 8 seriją' href='/pasidalink-19577x10/'>
        <img src="/templates/filmai_black/images/ico_tool_share.gif" />
    </a>
</td>
<td>
    <small>LT titrai</small>
</td>
<td>
    <a rel='gb_page_center[528, 290]' title='Žiūrėti 8 seriją' href='http://www.filmai.in/watch.php?em=BuwgzpqtssiAGGcjeekz9PTI1NjQ0N2E~'>
        <img src="/templates/filmai_black/images/play_icon.png" width="20" onclick='set_watched_cookie_serial("19577x10", "done-tick-full-series")' />
    </a>
</td>

我正在使用模式:

<td><small>(.*)</small></td>
<td><a rel='gb_page_center[528, 290]' title='Žiūrėti (.*) seriją' href='(.*)'><img src=

我想将(。*)位置的内容放入数组中。

有人可以纠正我的模式并解释一下吗? 我想学习使用正则表达式。

1 个答案:

答案 0 :(得分:0)

不要使用正则表达式来解析HTML ”, 这里有一些简单的步骤来学习Regexp。

  1. Download and install RegexBuddy
  2. 运行RegexBuddy
  3. Start with something easy然后飞! :)
  4. 您正在寻找的表达式是:

    <small>(.*)</small>
    

    它会找到在small个标记之间找到的所有字符,并将它们放入反向引用中。 将Backreference视为数组。找到的第一个项目是0,接下来是1,依此类推。

    // command:
    preg_match_all('%<small>(.*)</small>%i', $subject, $result, PREG_PATTERN_ORDER);
    
    // $result[0]
    
    Array
    (
        [0] => <small>LT titrai</small>
    )