从字符串中删除 ()

发布于 2024-10-03 09:16:20 字数 201 浏览 5 评论 0原文

$item = "(1) Robin Hood (hero)";

括号内的文本可以更改。

如何从字符串中删除所有包含文本的括号?

我们应该得到这个:

$item = "Robin Hood";

谢谢!

$item = "(1) Robin Hood (hero)";

Text inside brackets can be changed.

How do I remove all the brackets with text inside them from the string?

We should get this:

$item = "Robin Hood";

Thanks!

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

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

发布评论

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

评论(1

薄荷梦 2024-10-10 09:16:20

您可以将 preg_replace 用作:

$item = preg_replace('/\(.*?\)/s','',$item);

看起来您还想在替换后删除前导和尾随空格。
您可以将 trim 用作:

$item = trim( preg_replace('/\(.*?\)/s','',$item));

正则表达式使用的是 \(.*?\)

  • () 是正则表达式元字符
    用于分组。匹配文字
    你需要转义括号
    在它们前面加上 \
  • 您可以匹配之间的任意文本
    使用 .*? 加上括号。你
    也可以使用 [^)]* . 执行相同的操作
  • ,默认情况下不匹配
    换行符。使匹配换行符
    我们使用 s 修饰符。没有它
    我们将无法进行更换
    “(hello\nworld)嗨”

You can use preg_replace as:

$item = preg_replace('/\(.*?\)/s','',$item);

Looks like you also want to remove leading and trailing spaces after the replacement.
You can make use of trim for that as:

$item = trim( preg_replace('/\(.*?\)/s','',$item));

The regex used is \(.*?\):

  • ( and ) are regex meta-characters
    used for grouping. To match literal
    paranthesis you need to escape them
    by preceding them with a \.
  • You match any arbitrary text between
    the parenthesis by using .*?. You
    could also do the same using [^)]*
  • . by default does not match a
    newline. To make is match a newline
    we use the s modifier. Without it
    we would fail to do the replacement
    in "(hello\nworld) Hi"
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文