首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用带有单个preg_replace的REGEX从字符串中删除许多不同的括号[] () {}和内容?

如何使用带有单个preg_replace的REGEX从字符串中删除许多不同的括号[] () {}和内容?
EN

Stack Overflow用户
提问于 2012-04-05 00:03:39
回答 1查看 332关注 0票数 1

目前我使用的是

代码语言:javascript
复制
$str = preg_replace("/\([^\)]+\)/", "", $str); // Remove () and Content
$str = preg_replace("/\[[^\)]+\]/", "", $str); // Remove [] and Content
$str = preg_replace("/\{[^\)]+\}/", "", $str); // Remove {} and Content
$str = preg_replace("/[^a-zA-Z0-9]/", "", $str);  // Remove all non-alphanumeric characters

我想知道是否有一种方法可以将它们组合到一个正则表达式语句中

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-05 00:08:06

您可以使用|将它们组合在一起:

代码语言:javascript
复制
(\([^\)]+\)|\[[^\]]+\]|\{[^\}]+\})|[^A-Za-z0-9])

但在您的情况下,我通常只会遍历字符串并手动解析它。

使用“状态变量”($paren_open$brace_open$curly_open)了解是否忽略字符。

即使它看起来不是很快(因为您必须遍历每个字符),它也比正则表达式快得多,因为正则表达式会做一些更复杂的事情。

资源:

  • Wikipedia: State pattern
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10014976

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档