我正在尝试在WordPress中制作类似短代码的内容,而我正在寻找一个类似于[title:This is a title]
的正则表达式,并将其转换为This is a title
。
如果有人可以建议采用类似[code:some code]
之类的方法并将其转换为数组的形式,那也会很有用。
阵列(
[0] => '码'
[1] => '一些代码')
要么
阵列(
'code'=> '一些代码'
我尝试了一些我在这里和那里找到的不同的正则表达式,但它们似乎都没有用。
由于
答案 0 :(得分:4)
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);