我制作的正则表达式应该匹配所有内容:[[First example]]
或[[I'm an example]]
。
不幸的是,由于撇号,它与[[I'm an example]]
不匹配。
这是:
preg_replace_callback('/\[\[([^?"`*%#\\\\:<>]+)\]\]/iU', ...)
允许使用简单的撇号(&#39;),所以我真的不明白它为什么不起作用。
有什么想法吗?
编辑:以下是我使用此正则表达式之前发生的事情
// This match something [[[like this]]]
$contents = preg_replace_callback('/\[\[\[(.+)\]\]\]/isU',function($matches) {
return '<blockquote>'.$matches[1].'</blockquote>';
}, $contents);
// This match something [[like that]] but doesn't work with apostrophe/quote when
// the first preg_replace_callback has done his job
$contents = preg_replace_callback('/\[\[([^?"`*%#\\\\:<>]+)\]\]/iU', ..., $contents);
答案 0 :(得分:0)
试试这个:
$string = '[[First example]]';
$pattern = '/\[\[(.*?)\]\]/';
preg_match ( $pattern, $string, $matchs );
var_dump ( $matchs );
答案 1 :(得分:0)
您可以使用此正则表达式:
\[\[.*?]]
<强> JSFiddle 强>
Php 代码
$re = '/\[\[.*?]]/';
$str = "not match this but [[Match this example]] and not this";
preg_match_all($re, $str, $matches);
顺便说一句,如果要捕获括号内的内容,则必须使用捕获组:
\[\[(.*?)]]