我正在使用 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 简单的步骤来学习正则表达式。
- Download and install RegexBuddy
- 运行RegexBuddy
- 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/