$dannie = "Длина: 100 м
Длина 100 метров
Длина 100м";
Нужна регулярка которая будет находить определенное слово (в данном случае длина), и получать цифру идущую за ней, и на этом поиск прекращала, а не шла дальше и цепляла все остальные цифры. Почему то так не срабатывает. Почему не могу понять:
$str = preg_match_all("/([Длина:]+\d)/ui", $dannie, $out);
echo $dlina_result = implode(', ', $out[0]);
Пример: http://sandbox.onlinephpfunctions.com/code/b4efb8e5baba773d4c88e175d9ec8b105a5cd05d
Используйте
$dannie = "Длина: 100 м
Длина 100 метров
Длина 100м";
if (preg_match_all('~Длина:\s*\K\d+(?:[.,]\d+)?~u', $dannie, $matches)) {
echo implode(', ', $matches[0]);
}
Пример работы кода онлайн. См. также демо регулярного выражения.
Подробности
Длина:
- буквальный текст\s*
- 0 и более пробельных символов \K
- оператор, удаляющий весь найденный текст из текущего совпадения \d+
- 1 и более цифр(?:[.,]\d+)?
- 1 или 0 повторов последовательности:
[.,]
- точка или запятая\d+
- 1 и более цифрРегулярка длина\D*(\d+)/i
, брать первую группу:
var s = `Длина: 100 м
Длина 100 метров
Длина 100м`
console.log(s.match(/длина\D*(\d+)/i)[1])
Если я правильно понял, что двоеточие относится к маске и число отделено пробелами, то так:
preg_match_all("/(?<=Длина:)\s*(\d+)/ui", $dannie, $out);
echo $out[0][0];
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
прошу подсказать, как можно обезопасить запрос от sql инъекцийЗапрос такого вида:
У меня есть вот такой массив который хранится в сессии $_SESSION['product_ids']Для занесения данных в БД я использую ORM RedBeanPHP
Я действовал согласно видео на Install PHP, Apache and MySQLОдним из отличий является то, что у меня была несколько другая иерархия папок и файлов
Прошу советаСделан сайт на laravel - небольшой магазин\каталог