php - 为 php preg_match_all 创建模式

标签 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=

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

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

最佳答案

不要使用 Regex 来解析 HTML”放在一边, 这里有几个 super 简单的步骤来学习正则表达式。

  1. Download and install RegexBuddy
  2. 运行RegexBuddy
  3. Start with something easy然后飞! :)

您要查找的表达式是:

<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>
)

关于php - 为 php preg_match_all 创建模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12618400/

相关文章:

php - 如何在自定义 MVC .htaccess 中传递多个获取值

javascript - 使用 AJAX 在表中返回搜索结果

php - Mysql UPDATE 有时有效?

javascript - 如何使按钮消失并在 'x' 秒后重新出现?

c# - 使用正则表达式定位多个嵌套的 If 语句

python - Google bigquery python 客户端库 SQL 选择正则表达式错误

python - 替换单个换行符,保留倍数

php - 在运行从网站删除例程之前确认按钮

javascript - JQuery 可排序序列化

javascript - jQuery mouseenter 和 mouseleave 处理程序无法正常工作