@starblust
.

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

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

найти и вернуть все подшаблоны <math>.*</math>. Внутри этих тегов может быть что угодно
  • Вопрос задан
  • 155 просмотров
Решения вопроса 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];
}

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

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽