php - 从字符串中删除大括号

标签 php regex

我在互联网上找到了很多例子,但仍然找不到解决方案。 我有一个 PHP 页面,需要解析 HTML+JS 页面,并且需要删除 { } 之间包含的所有内容以及括号本身。 重点是括号的内容必须是 [A-Za-z0-9_] 而不是其他任何内容(就像我到目前为止所做的那样)。

这是我当前的替换:

$this->content = preg_replace("/\{((?:[^{}]++|\{(?1)\})++)\}/", "", $this->content);

到目前为止,这工作得很好,重点是不会在括号之间搜索正确的内容,并且无论里面有什么内容都会将其删除(atm 它正在从正在解析的页面内容中删除 JS 函数)。

我需要修改什么才能将这种字符限制添加到 reg-ex 的内容中?

谢谢

最佳答案

尝试使用此模式:

\{[a-zA-Z0-9_]+?\}

最好在重复次数末尾使用带有 ? 符号的惰性量化。

关于php - 从字符串中删除大括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21775564/

相关文章:

php - 获取数组中的 Youtube VideoID 详细信息

Python正则表达式编译2.7.5

python - 重复多个字符正则表达式

具有反向引用的 Java 正则表达式交集

regex - 使用 Perl 正则表达式提取第 n 个出现

正则表达式:如何在 Perl 中删除字符串之间的多余空格

php - Nginx 运行 Wordpress 错误地将 www 重定向到非 www

php - 我如何在 zend 查询中转换这个多个子查询?

php - 使用字符串值作为 if/else 表达式

php - 获取行数