@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];
}

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

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

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 05:01
999999 руб./за проект
19 апр. 2024, в 03:52
1000 руб./за проект
19 апр. 2024, в 03:01
1000 руб./за проект