@ganjo888

Как правильно составить регулярное выражение?

У меня есть в переменной вот такая строка
$path = 'file:\/\/\/specs\/operators.json#\/definitions\/number';

В json строке мне нужно найти значение моей переменной
что то вроде того
preg_match('("\$ref\":\$path")', $jsonString, $match);

Строка для поиска
{"type":"object","properties":{"id":{"$ref":"file:\/\/\/specs\/operators.json#\/definitions\/number","description":"описание"}

Как это правильно прописать? Буду очень признателен
  • Вопрос задан
  • 93 просмотра
Решения вопроса 1
Stalker_RED
@Stalker_RED
Больше экранирования богу экранирования!
$path = 'file:\/\/\/specs\/operators.json#\/definitions\/number';
$path = preg_quote($path); 


$jsonString = '{"type":"object","properties":{"id":{"$ref":"file:\/\/\/specs\/operators.json#\/definitions\/number","description":"описание"}';
preg_match('~("\$ref":"'.$path.'")~', $jsonString, $match);

var_export($match);
https://ideone.com/IBxj24

Но мне кажется, вы делаете что-то странное.

Если вам нужна только эта проверка, то лучшим вариантом по производительности будет не парсинг json, и не регулярки, а обычный strpos.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы