Расспаристь “тег” игнорируя похожие

167
22 ноября 2018, 11:30

В теле документа есть специальные теги в виде {name}, все бы хорошо, но есть конфликт, когда есть похожий тег {{name}}, где вместо одной фигурной скобки две. Как написать регулярное выражение, чтобы второй вариант игнорировался(. т.е работал только {name}. Мои пробы:

preg_match_all('/\[^{]*{([ \w\-_0-9#.\+]+)\}[^}]*/u', $cont, $match);
Answer 1

Возможно не универсальное решение, но как начало пойдет, возможно додумаете сами:

$test = '1 {name1} 2 {{name2}} 3 {name3} 4';
preg_match_all('#[^{]{([^{]*)}#U', $test, $out);
var_dump($out[1]);

Результат:

array(2) {
  [0]=>
  string(5) "name1"
  [1]=>
  string(5) "name3"
}
READ ALSO
Cmake линковка на библиотеку подпроекта

Cmake линковка на библиотеку подпроекта

Имеется примерно следующий проект на Cmake:

151
Как получить данные из камеры?

Как получить данные из камеры?

Вообще хотел бы получить данные из камеры, преобразовать это в flv формат, и вывести по rtmp, но наверное это только мечтаПробывал ffmpeg программу...

129
Обмен данными между сокетами

Обмен данными между сокетами

Написал сокет-сервер на python (ubuntu), а клиента на c++ (windows)Проблема в том, что на сервере функция recv требует оповещение об закрытиии сокета (shutdown)...

139