Я пытаюсь сделать что-то вроде коротких кодов в WordPress, и я ищу регулярное выражение, которое займет что-то вроде [title:This is a title]
и превратит его в просто. This is a title
.
Было бы также полезно, если бы кто-то мог предложить способ сделать что-то вроде [code:some code]
и превратить это в массив в виде массива ([0] => 'code' [1] => 'some code' ) или массив ('code' => 'some code'
Я пробовал несколько различных регулярных выражений, которые я нашел здесь и там, но никто из них, похоже, не работает.
благодаря
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);
Идеал .