Разбейте число и оставьте одно число после точки - PullRequest
0 голосов
/ 07 февраля 2020

У меня есть следующая строка: $string = "10x1.12A", и я хотел, чтобы результат был: 10x1.1. У меня есть разные комбинации в конце, но я просто хотел получить одно число после точки и удалить все после этого.

Ответы [ 2 ]

1 голос
/ 07 февраля 2020

Я мог бы предложить использовать preg_match_all с шаблоном регулярных выражений ^.*?\.\d:

$string = "10x1.12A";
preg_match_all ("/^.*?\.\d/", $string, $matches);
echo $matches[0][0];

Это печатает:

10x1.1

Также возможно preg_replace способ сделать this:

$string = "10x1.12A";
$output = preg_replace("/(?<=\.\d).*$/", "", $string);
echo $output;

Этот подход удаляет все, что появляется после числа точки. Обратите внимание, что я предполагаю, что здесь будет только одна точка.

0 голосов
/ 07 февраля 2020
$string = "10x1.12A" ;
$dotpos = strpos($string, '.'); // find the position of the first dot in the string
$result = substr($string, 0, $dotpos+2); // take the string from the start to the digit after the first dot
echo $result // 10x1.1
...