Задать вопрос
@starblust
.

Найти все вхождения для регулярного выражения /(.*)/?

Например дана строка
$string = "<math>var:a[actions]</math> килограмм яблок стоит <math>anything[]</math> руб. Сколько будет будет стоить <math>anything</math> килограмм(а, ов) яблок?";

найти и вернуть все подшаблоны <math>.*</math>. Внутри этих тегов может быть что угодно
  • Вопрос задан
  • 159 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 2
bitniks
@bitniks
Go/PHP/Symfony developer
$string = "<math>var:a[actions]</math> килограмм яблок стоит <math>anything[]</math> руб. Сколько будет будет стоить <math>anything</math> килограмм(а, ов) яблок?";

preg_match_all('#<math>(.*?)</math>#', $string, $matches);
var_dump($matches);

sandbox.onlinephpfunctions.com/code/ab2a34b6543f14...
Ответ написан
@hell
Попробуйте без регулярок - возможно будет проще.
$string = "<math>var:a[actions]</math> килограмм яблок стоит <math>anything[]</math> руб. Сколько будет будет стоить <math>anything</math> килограмм(а, ов) яблок?";
$res=array();
$maths=explode('</math>',$string);
foreach ($maths as $math){
$mis=explode ('<math>',$math);
if(isset($mis[1]))$res[]=$mis[1];
}

Работать на коротких строках будет чуть медленнее, но оверхед врядли будет очень велик
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽