php - 需要一个正则表达式来将 css 类添加到第一个和最后一个列表项

标签 php html css regex

更新: 谢谢大家的意见。一些附加信息。

这实际上只是我正在使用的一小部分标记(20 行),旨在利用正则表达式来完成工作。

我也确实有能力破解脚本(电子商务脚本)以在构建导航时插入类。当我更新到最新版本的软件时,我想限制我使用的 hack 数量,以便让我自己更轻松。

话虽如此,我很清楚自己的处境以及可供选择的各种选择。我的正则表达式的第一部分按预期工作。我发帖实际上或多或少是为了看看是否有人会说,“嘿笨蛋,这很容易,只需更改一下......”

在我的一些努力接近之后,现在更多的是原则。只知道(并学习)这个问题的解决方案。我也讨厌被一段代码打败。

原创:

我正在尝试利用正则表达式将 CSS 类添加到有序列表中的第一个和最后一个列表项。我尝试了多种不同的方法,但无法产生我正在寻找的结果。

我有第一个列表项的正则表达式,但似乎无法为最后一个找到正确的正则表达式。这是我正在使用的:

    $patterns = array('/<ul+([^<]*)<li/m', '/<([^<]*)(?<=<li)(.*)<\/ul>/s');
    $replace = array('<ul$1<li class="first"','<li class="last"$2$3</ul>');
    $navigation = preg_replace($patterns, $replace, $navigation); 

如有任何帮助,我们将不胜感激。

最佳答案

Jamie Zawinski会有 something to say about this ...

你有合适的 HTML 解析器吗?我不知道是否有类似 hpricot 的东西可用于 PHP,但这是处理它的正确方法。您至少可以使用 hpricot 为您进行第一次清理。

如果您实际上是在生成 HTML,请在此处生成。看起来您想生成一些导航并在其上放置 .first.last 之类的东西。退后一步,尝试一下。

关于php - 需要一个正则表达式来将 css 类添加到第一个和最后一个列表项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/328623/

相关文章:

html - Li向左浮动,长度动态: no border-bottom on the last row

jquery - 如何选择具有特定类且以类结尾的元素?

html - 实际移动分辨率

php - 在 PHP 中获取 stdClass 对象的名称

javascript - 如何使用 Adob​​e Brackets 转译 coffeescript

javascript - 表单中的密码,Foundation 5 (ZURB)

javascript - 使用 jquery 清除元素的属性

javascript - 将值添加到 PHP 数组中的特定键位置

php - 如何通过php选择的表备份数据库mysql表

javascript - window.location.reload 在各种设备和浏览器上随机工作