2016-06-01 3 views
0

Извините за расплывчатые названия, но в принципе я понятия не имею, когда речь идет о регулярном выражении, но мне нужен матч за следующее:preg_replace, который игнорирует новую строку?

Example

https://fragdeluxe.com/api/csgo_schema.php

В принципе, я хочу, чтобы игнорировать все пробелы и новые строки, и иметь возможность заменить «предметы» на «items2», только если выполняется {.

Любая помощь была бы принята с благодарностью.

Редактировать: Мне понадобится это, чтобы заменить только первое вхождение. Идея состоит в том, чтобы остановить любые последующие записи, переписывая их, когда я преобразовываю его в массив.

Исходный файл здесь: https://raw.githubusercontent.com/SteamDatabase/GameTracking/master/csgo/csgo/scripts/items/items_game.txt

Спасибо.

+0

поделиться своим кодом –

+0

https://fragdeluxe.com/api/csgo_schema.php – SM9

+0

это данные json? нет! – Dale

ответ

4

Как насчет:

$str = preg_replace('/"items"(?=\s+\{)/', '"items2"', $str, 1); 

\s стоит для любого белого пространства включены разрыв строки.

+0

Жаль, что это боль, думая об этом сейчас, возможно ли это сделать только с первым вхождением? – SM9

+1

@ SM9: добавьте параметр предела (т.е. 1), см. Мое редактирование. – Toto

+0

@ SM9: Да, необязательным четвертым параметром preg_replace является ограничение – eol

Смежные вопросы