删除从左方括号标签到右方括号标签的部分文本

发布于 2024-10-02 18:25:22 字数 1470 浏览 4 评论 0原文

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

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

发布评论

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

评论(3

怪我入戏太深 2024-10-09 18:25:22

您需要转义模式内每一次出现的分隔符

如果分隔符需要在模式内匹配,则必须使用反斜杠对其进行转义。如果分隔符经常出现在模式内部,最好选择另一个分隔符以提高可读性。

所以逃避它:

'/\[attachment=.*?].*\[\/attachment]/'
                       ^

顺便说一句:目前 .* 中的 量词是贪婪的,这意味着它将尽可能匹配。您可能想像以前一样使用 ? 将其更改为非贪婪变体。

You need to escape every occurrence of the delimiter inside the pattern:

If the delimiter needs to be matched inside the pattern it must be escaped using a backslash. If the delimiter appears often inside the pattern, it is a good idea to choose another delimiter in order to increase readability.

So escape it:

'/\[attachment=.*?].*\[\/attachment]/'
                       ^

By the way: Currently the quantifier in .* is greedy, that means it will match as much as possible. You might want to change it to an ungreedy variant using ? like you did before.

勿忘心安 2024-10-09 18:25:22

您需要一个分隔符,如果您实际上在表达式中使用它,则需要转义它(即:[/attachment]有一个/ 中)。转义它或更改分隔符(例如 #)。

You need a delimeter, and you need to escape it if you're actually using it in your expression (i.e.: [/attachment] has a / in it). Escape it or change your delimiter (# for example).

一袭白衣梦中忆 2024-10-09 18:25:22

我想我解决了这个问题。我在示例中的测试数据很糟糕,因此我尝试匹配无效的模式。

I think I solve this. My test data in the example was bad, so I was trying to match an invalid pattern.

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