Regex для получения информации из квадратных скобок

Я пытаюсь сделать что-то вроде коротких кодов в WordPress, и я ищу регулярное выражение, которое займет что-то вроде [title:This is a title] и превратит его в просто. This is a title .

Было бы также полезно, если бы кто-то мог предложить способ сделать что-то вроде [code:some code] и превратить это в массив в виде массива ([0] => 'code' [1] => 'some code' ) или массив ('code' => 'some code'

Я пробовал несколько различных регулярных выражений, которые я нашел здесь и там, но никто из них, похоже, не работает.

благодаря

Solutions Collecting From Web of "Regex для получения информации из квадратных скобок"

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

CodePad .

Если вы хотите захватить текст перед двоеточием, просто оберните его в круглую скобку и он станет захватывающей группой 1.

Обновить

Я хочу использовать preg_match вместо preg_replace

Вы хотите использовать preg_match_all() для получения всех совпадений.

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

Идеал .

Кроме того, вы можете дать им названные группы захвата.

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

Идеал .