preg_replace:未知修饰符

发布于 2024-08-26 16:49:02 字数 423 浏览 4 评论 0原文

假设 $body 等于

something 
that 
does 
not 
interest 
me 
<!-- start -->
some
html
code
<!-- end -->
something
that
does
not
interest
me

如果我使用

$body=preg_replace("(.*)<!-- start -->(.*)<!-- end -->(.*)","$2",$body);

我获得:

警告:preg_replace() [function.preg-replace]:未知修饰符“<”

我该如何纠正?

Let's assume that $body is equal to

something 
that 
does 
not 
interest 
me 
<!-- start -->
some
html
code
<!-- end -->
something
that
does
not
interest
me

If I use

$body=preg_replace("(.*)<!-- start -->(.*)<!-- end -->(.*)","$2",$body);

I obtain:

Warning: preg_replace() [function.preg-replace]: Unknown modifier '<'

How have I to correct?

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

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

发布评论

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

评论(2

孤云独去闲 2024-09-02 16:49:02

preg 模式需要一对字符来分隔模式本身。在这里,您的模式包含在第一对括号中,其他所有内容都在外面。

试试这个:

$body=preg_replace("/(.*)<!-- start -->(.*)<!-- end -->(.*)/","$2",$body);

这只是关于语法,并且不能保证看起来可疑的模式本身。

假设您的示例中的文本:

preg_match('#<!-- start -->(.*?)<!-- end -->#s', $text, $match);
$inner_text = trim($match[1]);

A preg pattern needs a pair of characters which delimit the pattern itself. Here your pattern is enclosed in the first pair of parentheses and everything else is outside.

Try this:

$body=preg_replace("/(.*)<!-- start -->(.*)<!-- end -->(.*)/","$2",$body);

This is just about the syntax, and there is no guarantee on the pattern itself which looks suspicious.

Assuming the text in your example:

preg_match('#<!-- start -->(.*?)<!-- end -->#s', $text, $match);
$inner_text = trim($match[1]);
失退 2024-09-02 16:49:02

试试这个:

$body = preg_replace("/(.*)<!-- start -->(.*)<!-- end -->(.*)/","$2",$body);

Try this:

$body = preg_replace("/(.*)<!-- start -->(.*)<!-- end -->(.*)/","$2",$body);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文