Попытка заставить R gsub Regex работать с PHP preg_replace Regex [duplicate]

0

Вы должны будете простить меня, потому что я плохо себя чувствую при регулярном выражении.

Итак, вот что я пытаюсь сделать. Я работаю над выделением Option Chains из API Google Finance. Единственная проблема заключается в том, что Google не переносит ключи JSON в кавычки, как они должны быть. Я нашел метод использования метода replace string с помощью регулярного выражения, но он находится в R, и я работаю с PHP.

JSON, с которым я работаю, отсюда

Р:

gsub('([^,{:]+):', '"\1":', json)

PHP:

$pattern = '([^,{:]+):';
$replacement = '"\1":';
$json = preg_replace($pattern, $replacement, $quote);

Я попробовал код PHP, который был показан выше, и я получаю:

[18-Jan-2015 21:34:36 America/Denver] PHP Warning:  preg_replace(): Unknown modifier ':' in /home1/oldpizza/public_html/austingregory/stocks/index.php on line 10

Я уверен, что это разница между шаблонами регулярных выражений PHP и R, но я не уверен в различии, поскольку я все еще очень новичок в регулярном выражении. Но согласно regex101, он должен работать... Не совсем уверен, куда идти оттуда. Если бы вы могли помочь мне с регулярным выражением или помочь мне понять, почему он не работает, это было бы здорово.

Спасибо!

  • 0
    отсутствует редактирование
Теги:

1 ответ

0
Лучший ответ

В preg_replace требуется preg_replace:

$pattern = '~([^,{:]+):~';
$replacement = '"\1":';
$json = preg_replace($pattern, $replacement, $quote);

/, ~ и # обычно используются как разделитель, но () пара также может использоваться как разделитель, и именно по этой причине вы получили предупреждение выше. Он интерпретирует внешнюю пару () как разделитель и : в конце как модификатор (флаг).

  • 0
    Благодаря тонну! Это добилось цели. :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню