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

时间:2011-05-19 02:34:23

标签: php regex preg-match square-bracket

我正在尝试在WordPress中制作类似短代码的内容,而我正在寻找一个类似于[title:This is a title]的正则表达式,并将其转换为This is a title

如果有人可以建议采用类似[code:some code]之类的方法并将其转换为数组的形式,那也会很有用。     阵列(          [0] => '码'          [1] => '一些代码') 要么     阵列(          'code'=> '一些代码'

我尝试了一些我在这里和那里找到的不同的正则表达式,但它们似乎都没有用。

由于

1 个答案:

答案 0 :(得分:4)

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

CodePad

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

更新

  

我希望使用preg_match代替preg_replace

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

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

Ideone

或者,您可以将它们命名为捕获组。

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

Ideone