PHP Разбирайте строку между двумя процентами знаков

99
10

У меня есть блок текста, и я пытаюсь создать массив, разобрав все строки, которые находятся между двумя знаками %%, такими как% string_name%...

Вот пример текста:

Общая% комиссии по указанному выше имуществу составляет 6% от% buy_amount% (покупная цена) =% total_commission%...

Я хочу просто получить% total_commission% и% purchase_amount%, но мой скрипт испорчен из-за строки "6%" в тексте и "% комиссии", потому что он считает, что нужно также захватить эти строки, потому что они имеют процент приметы...

Как я могу изменить эту функцию preg_match_all, чтобы просто захватить текст с двумя знаками процента?

Вот моя функция preg_match_all:

preg_match_all('/%[^%]*%/', $theLargeTextBlockVariable, $matches);

спросил(а) 2018-03-21T23:33:00+03:00 2 года, 7 месяцев назад
1
Решение
90

Один из возможных подходов:

preg_match_all('/%[a-z_]+?%/', $theLargeTextBlockVariable, $matches);

В шаблоне теперь используются только латинские буквы или символы подчеркивания. И это стало жадным для немного лучшей производительности.

ответил(а) 2018-03-21T23:35:00+03:00 2 года, 7 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема