PHP регулярное выражение для поиска токена в некрасивой строке

Предположим, у меня есть эта уродливая строка:

$uglyString = 'thing.header.setLoadBaseData(true);</script><script type=\'text/javascript\'>window.preload={"serverVersion":"20161019","locale":"en_US","token":{"value":"aAdcDqpeWcaJzmmWeH9ElQ:1477340771943","valid":43200000},"accounts":[{"id":"55153549","datasetId":"a55153549w0p0","s4id":"FU\/llMk3qzAP6ClSIHqMU73huAo=","name":"Ga abd Gub","isPremium":false,"starred":false,"totalNumberOfProfiles":1,"wprops":[{"id":"88276407","datasetId":"a55153549w88276407p0","s4id":"T1xfVTHwcwLUwkUSlzEfZrRYL3E=","name":"GrubHub Preview","number":1,"configuredForAppData":false,"configuredForWebData":true,"isPr';

Из приведенной выше строки мне нужно извлечь значение aAdcDqpeWcaJzmmWeH9ElQ:1477340771943 используя PHP.

Он находится рядом с token, Токен всегда будет выглядеть как "token":{"value":"aAdcDqpeWcaJzmmWeH9ElQ:1477340771943"

Это то, что у меня есть, но это не работает

preg_match('/(?<=token":{"value":)(.*)(?=.*)/', $uglyString, $matches);

0

Решение

Используйте то, что постоянно, и запишите, что изменится:

preg_match('/"token":{"value":"([^"]+)"/', $uglyString, $matches);
echo $matches[1];

Так что сопоставьте все постоянные вещи до ", а затем захватить все, что не является " до финала ",

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]