PHP preg_replace 删除字符串中的第一个 HTML 元素
我想在 PHP 中删除 html 字符串的整个第一个元素(它始终是一个段落)。
我当前的方法是使用:
$passage = preg_replace('/.*?\b'.'</p>'.'\b/s', '', $passage, 1);
由于 中的特殊字符,这不起作用
我知道以下内容将在单词“one”出现之前从字符串中删除所有内容
$passage = preg_replace('/.*?\b'.'one'.'\b/s', '', $passage, 1);
I would like to remove the entire first element of a html string (it is always a paragraph) in PHP.
my current approach is using:
$passage = preg_replace('/.*?\b'.'</p>'.'\b/s', '', $passage, 1);
This doesn't work because of the special characters in </p>
I know that the following will remove everything from the string before the word 'one' appears
$passage = preg_replace('/.*?\b'.'one'.'\b/s', '', $passage, 1);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您将“/”用作分隔符,则必须使用反斜杠对其进行转义:因此它是
<\/p>
编辑:您应该添加一个
^
到标记字符串的开头。另一个解决方案:您可以使用其他分隔符,例如
#
。完整代码
$passage = preg_replace('#^.*?
#is', '', $passage, 1);
You have to escape '/' with a backslash if you're using it as a delimiter: So it's
<\/p>
Edit: You should add a
^
to mark the start of the string.Another solution: You can use other delimiters like
#
.Full code
$passage = preg_replace('#^.*?</p>#is', '', $passage, 1);
你可以使用这个正则表达式
<代码>
$passage = preg_replace('/^
\s*(.+?)\s*
$/is','$1', $passage, 1);
you can use this regExp
$passage = preg_replace('/^<p>\s*(.+?)\s*</p>$/is','$1', $passage, 1);