包含正斜杠的正则表达式会创建警告

发布于 2024-09-06 12:23:07 字数 328 浏览 3 评论 0原文

这个函数不起作用:

function remove_ul($ul) {
    $ul = preg_replace('/<ul id="general-nav">/', '<ul class="nav">', $ul, 1);
    $ul = preg_replace('/</ul>/', '<li class="blank"></li></ul>', $ul, 1);
    return $ul;
}

我认为这是因为在 行上重复了 /

This function doesn't work:

function remove_ul($ul) {
    $ul = preg_replace('/<ul id="general-nav">/', '<ul class="nav">', $ul, 1);
    $ul = preg_replace('/</ul>/', '<li class="blank"></li></ul>', $ul, 1);
    return $ul;
}

I think it's because of the repeating / on the line with </ul>.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

暮光沉寂 2024-09-13 12:23:09

尝试将这个:替换

$ul = preg_replace('/</ul>/', '<li class="blank"></li></ul>', $ul, 1);

为:

$ul = preg_replace('/<\/ul>/', '<li class="blank"></li></ul>', $ul, 1);

或者尝试:

$ul = preg_replace('#</ul>#', '<li class="blank"></li></ul>', $ul, 1);

因为在你的代码中,你指定了分隔符/然后使用,有冲突,你需要使用 \ 转义分隔符或使用 # 作为分隔符。

Try replacing this:

$ul = preg_replace('/</ul>/', '<li class="blank"></li></ul>', $ul, 1);

with:

$ul = preg_replace('/<\/ul>/', '<li class="blank"></li></ul>', $ul, 1);

Or try:

$ul = preg_replace('#</ul>#', '<li class="blank"></li></ul>', $ul, 1);

Because in your code, you have specified the delimiter / and then using </ul>, there is conflict, you need to either escape the delimiter with \ or use # as delimiters.

§对你不离不弃 2024-09-13 12:23:09

对第二个表达式中的斜杠进行转义 (/<\/ul>/)。如果您的查询变得更加复杂,您可能还必须使用捕获组(括号)。

哦,用正则表达式解析 html 是邪恶的。在 XHTML Regex 潮流席卷这篇文章之前。 :)

Escape the slash in the second expression (/<\/ul>/). If your query becomes more complex, you might have to use a capturing group as well (parentheses).

Oh and parsing html with regex is evil. In before the XHTML Regex bandwagon storms this post. :)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文