Я создаю регулярное выражение, которое должно соответствовать всем следующим образом: [[First example]]
или [[I'm an example]]
.Почему мое регулярное выражение отвергает апострофы?
К сожалению, это не соответствует [[I'm an example]]
из-за апострофа.
Здесь:
preg_replace_callback('/\[\[([^?"`*%#\\\\:<>]+)\]\]/iU', ...)
Простого апостроф (') разрешен, так что я действительно не понимаю, почему он не работает.
Любые идеи?
EDIT: Вот что происходит, прежде чем я использую это регулярное выражение
// 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);
Это делает work.Try с 'preg_match_all' HTTPS : //regex101.com/r/oF9hR9/5 – vks
@vks Я использую 'preg_replace_callback' (исправленный) –
символ рядом с' '' там. это должна быть цитата? это галочка '\' ', а не одна цитата' '' - всего двух разных животных –