php - 正则表达式将 [ 替换为 -> 根据条件

标签 php regex

我正在寻找一个可以用“->”替换所有“[”的正则表达式,但前提是它后面没有跟“]”。

并同时将所有“]”替换为空,但仅当它们不在“[”旁边时才替换

换句话说,“test[hi][]”将变成“test->hi[]”

谢谢;)

我真的不知道该怎么做 ;)

最佳答案

我假设括号之间的内容遵循 PHP variable naming conventions (即字母、数字、下划线)并且您的代码有效(例如没有 $test['five])。

echo preg_replace('/\[[\'"]?(\w+)[\'"]?\]/', '->\1', $input);

这应该处理:

test[one]
test['two']
test["three"]

但不是:

test[$four]

关于php - 正则表达式将 [ 替换为 -> 根据条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11434465/

相关文章:

php - 使用 preg_replace 删除 php 中两个字符串之间的文本

java - 如何在字符串中搜索相同的模式,然后将它们放入Java中的数组中?

javascript - 使用 RegExp 查找、复制和粘贴标签内容

php - 根据两个或多个空格将数据分解为数组元素

php - 错误引用的 CSV 文件的正则表达式

php - 如何在php中编写mysql用户自定义函数

php - 使用 Socialite Laravel 检索 Facebook 用户详细信息

php - 使用信息窗口设置标记聚类器标记

php - WooCommerce:还显示购物车商品的产品变体描述

regex - 使用 lapply 在列表中绘制数据并使用列表元素的名称作为绘图标题