У меня есть вопрос, связанный с pcre с php.Как написать шаблон pcre для соответствия определенному тегу
Мне нужно написать небольшой парсер для определенного файла, и я не знаю регулярное выражение очень хорошо, поэтому мне нужна помощь.
Это вход ...
blah blah [{img:xyzname}] one more blah blah[{root}]
and [{php:<?php ...echo 'phpcode';......?>}]
... так что я должен заменить эти значения с моими них, так вот что я сделал ...
$alt=preg_replace_callback('|\[{(.*[^}\]])}\]|iU',
function ($match){
$m=explode(':',$match[1]);
switch($m[0]){
case 'img':
return $m[1]
break;
case 'php':
// i want that php code here in $m[1] but i am getting nothing
break;
default:
return 'UNDEFINED';
break;
}
}
},$this->content);
$this->content=$alt;
Я пробовал много раз со многими паттерами и многими тестами, но я заметил, что я получаю нуль или ничего, только когда мой [{php:<?php .....?>}] contains <? and only when I put < ?
.
Я также нашел этот паттерн, но все еще проблема | \ [{[^} \]] +} \] | iU –
, но его рабочая скважина в regexbuddy это php, который пропускает php-теги в этом случае –