php preg_match помогите с выражением

141
06 февраля 2018, 10:02

Нужно достать число от 4-6 символом из строки, что бы после неё не стояло через любое кол-во пробелов "руб" или "руб." Делаю так:

$Pattern = "/([\d]{4,6})(?!\s*rub\.?)/";

Из строки без "руб" вырезает нормально. В строке где есть "руб", всё равно ловит число, и отъедает последнею цифру. Помогите исправить.

Сделал так:

if (preg_match($Pattern, /*$message->body*/
                    "Ваш номер 7854 руб. 1452 руб Долг 341328 руб", $matches) === 1) {
    echo "Count of matches: ".count($matches)."\n";
    var_dump($matches);
    //$Code = $matches[0];
    //echo "Code is:".$Code . "\n";

}

Найти ничего не должен. Но результат такой:

Count of matches: 1

array(1) { [0]=> string(5) "34132" }

Answer 1
//$str = 'Ваша задолженность 1000руб. Скорость интернета ограничена до пополнения счета. Уникальный номер для оплаты 12345 10444 - ваш код для активации обещанного платежа на сумму 100 руб.';
$str = 'Ваш номер 7854 руб. 1452 руб Долг 341328 руб';
$patt = '~\b\d{4,6}\b(?!\s*руб\.?)~';
preg_match_all($patt, $str, $arr);
var_dump($arr);

Результат:

array (size=1)
  0 => 
    array (size=2)
      0 => string '12345' (length=5)
      1 => string '10444' (length=5)
READ ALSO
Кол-во колонок в таблице

Кол-во колонок в таблице

Как посчитать кол-во колонок в таблице с помощью php?

157
Как получить локальный ip адрес клиента?

Как получить локальный ip адрес клиента?

Хочу сделать небольшой опросник, в котором для уникальности каждого конкретного пользователя, используется его локальный ip-адресСайт находится...

179
Имитировать переход на сайт от лица сервера

Имитировать переход на сайт от лица сервера

Есть ссылка на сайт, перейдя по которой на сайте выполняется определенное действиеНа этот сайт открыт доступ только некоторым ip (моему серверу)...

158
cURL отправка файла через URL

cURL отправка файла через URL

Нужно отправить файл (изображение) на этот сайтУ них есть API

151