2

我正在使用 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=

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

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

4

1 回答 1

0

除了“不要使用 Regex 解析 HTML ”之外,这里还有一些学习 Regexp 的超级简单的步骤。

  1. 下载并安装 RegexBuddy
  2. 运行正则表达式好友
  3. 从简单的事情开始,然后飞起来!:)

您正在寻找的表达式是:

<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>
)
于 2013-03-14T09:53:23.980 回答