regex — PHP: функция обработки текста preg_match

<?php
$eqn1="0.068683000000003x1+2.046124y1+-0.4153z1=0.486977512";
preg_match("/\b[0-9]*\b/",$eqn1,$vx1);
echo "X1 is: $vx1[0]";
?>

Может кто-нибудь сказать мне, как хранить значение x1 (то есть 0.068683000000003) в переменной $ vx1?

Выход:

X1 is: 0

0

Решение

1) ставьте точку с запятой после каждого предложения;
2) используйте echo «X1 is:» $ vx1 [0]; вместо эха «X1 — это: $ vx1 [0]»;

<?php
$eqn1="0.068683000000003x1+2.046124y1+-0.4153z1=0.486977512";

preg_match("/\b[0-9]*\b/",$eqn1,$vx1);
echo "X1 is:" .$vx1[0];
0

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

Вы пропускаете точки с запятой после операторов, и оператор echo должен быть изменен:

<?php
$eqn1 = "0.068683000000003x1+2.046124y1+-0.4153z1=0.486977512";

preg_match("/\b[0-9]*\b/", $eqn1, $vx1);
echo "X1 is: " . $vx1[0];
0

Ваше регулярное выражение учитывает только целое число, ваше первое число является десятичным.

Вот способ выполнить работу, номер, который вы ищете, находится в группе 1:

$eqn1 = "0.068683000000003x1 + 2.046124y1 + -0.4153z1 = 0.486977512";
preg_match("/^(\d+\.\d+)/", $eqn1, $vx1);
echo "X1 is: ", $vx1[1], "\n";

Выход:

0.068683000000003
0
По вопросам рекламы [email protected]