Задать вопрос
@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":"описание"}

Как это правильно прописать? Буду очень признателен
  • Вопрос задан
  • 95 просмотров
Подписаться 1 Простой 3 комментария
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 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.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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