正则表达式用于从方括号中获取信息


Regex for getting information from square brackets

我正在尝试在WordPress中制作类似短代码的东西,我正在寻找一个正则表达式,它可以采用类似[title:This is a title]的东西并将其转换为This is a title

如果有人可以建议一种方法来获取类似 [code:some code] 并将其转换为以下形式的数组,那也将很有用 数组( [0] => '代码' [1] => "一些代码")或 数组( "代码" => "一些代码"

我尝试了我在这里和那里找到的几个不同的正则表达式,但它们似乎都不起作用。

谢谢

preg_replace('/'[.*?:(.*?)']/', '$1', $str);

代码板。

如果要捕获冒号之前的文本,只需将其括在括号中,它就会成为捕获组 1。

更新

我想使用preg_match而不是preg_replace

您希望使用preg_match_all()来获取所有匹配项。

preg_match_all('/'[(.*?):(.*?)']/', $str, $matches);

艾德奥内。

或者,您可以为它们指定命名的捕获组。

preg_match_all('/'[(?P<identifier>.*?):(?<body>.*?)']/', $str, $matches);

艾德奥内。