更新: 谢谢大家的意见。一些附加信息。
这实际上只是我正在使用的一小部分标记(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/