regex — регулярные выражения с двойными кавычками

Я пытаюсь использовать регулярные выражения для извлечения определенного значения из строки:

«exec_hash»: «/ TPPE2ChB + 5HuSHs84FBgx5 / EgWi0OlaEXoXq4pq3Aukhc1Ypf0mZfKCJ10w =», «events_collector»: «thiiM0ahsieSiech1phithe6chahngoo8ah6aha

Данные, которые я хочу, — это хеш между кавычками. Проблема в том, что в строке есть несколько кавычек и preg_match_all функция не возвращает правильные данные. Я играл с регулярным выражением некоторое время, но не могу понять это. В конечном счете, я хотел бы, чтобы эти данные были возвращены в значение. Пример: $string1 = '/TPPE2ChB+5HuSHs84FBgx5/EgWi0OlaEXoXq4pq3Aukhc1Ypf0mZfKCJ10w=';

Исправление: я использую curl для захвата содержимого страницы. Данные не хранятся в переменной.

$ match = array ();
$ thing = preg_match_all (‘/ hash «:» (. *?) «,» events /’, $ page, $ совпадений); print_r (соответствует $);

Он выплевывает длинный массив гораздо больше, чем просто хэш

0

Решение

Вы можете использовать substr?

не проверял это, но в теории …

$pos_of_comma = strpos($str, ",");
if($pos_of_comma !== false) {
$execHash = substr($str, 14, $pos_of_comma - 14);
}
0

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

Похоже, это json_decodable:

//Get the result from curl request:
$curlResult = '"exec_hash": "/TPPE2ChB+5HuSHs84FBgx5/EgWi0OlaEXoXq4pq3Aukhc1Ypf0mZfKCJ10w=", "events_collector": "thiiM0ahsieSiech1phithe6chahngoo8sah6aid\n"';

//Parse the result:
$parsedResult = json_decode($curlResult, true);
//Get the hash:
$hash = $parsedResult["exec_hash"];
0

Спасибо за предложения.

Я понял. Я пропустил escape-разделители в выражении.

preg_match_all («/ exec_hash \»: \ «(. *?) \», / «, $ page, $ совпадений);

0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector