Есть такая регулярка:
/(\d{2,4})+|\s+(x|-|na|х|\s|на|)+|\s+(\d{2,4})/
Она на ура отрабатывает парсер размера 100 на 60
и т.п.
Но почему то она срабатывает и на строку: 100 руб
Как ее доработать чтобы она четко работала: цифры (разделитель) цена.
Спасибо. P.S: язык Php :)
Предлагаю
'/(\d+)\s*([\p{Pd}xх]|na|на)\s*(\d+)/u'
См. демо выражения
(\d+)
- Группа 1: одна и более цифр\s*
- 0+ пробельных символов([\p{Pd}xх]|na|на)
- разные дефисы (\p{Pd}
), x
, х
, na
или на
\s*
- 0+ пробельных символов(\d+)
- Группа 3: одна и более цифрЕсли числа могут быть дробными, можно добавить (?:[.,]\d+)?
после \d+
:
/(\d+(?:[.,]\d+)?)\s*([\p{Pd}xх]|na|на)\s*(\d+(?:[.,]\d+)?)/u
PHP:
$re = '/(\d+)\s*([\p{Pd}xх]|na|на)\s*(\d+)/u';
$str = '100 на 60, 100 руб';
preg_match_all($re, $str, $matches, PREG_SET_ORDER);
foreach ($matches as $m) {
echo $m[1] . ", " . $m[2] . ", " . $m[3] . "\n";
}
// => 100, на, 60
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Описание проблемы: есть 2 таблицы tabel_home и table_users и они связаны 1 ко многим и при добавлении новой записи в таблицу tabel_home приходится проверять...
Как разбить страницу состоящую из тысяч строк текста на много страниц (пагинация) в codeigniter?
Уже не первый сталкиваюсь с тем, что, когда в поле с типом TEXT вместе с текстом записывается символ плюс (+), получаю не корректное поведениеЛибо...
ЗдравствуйтеПомогите решить проблему: есть zip-архив неизвестно где и как созданный, нужно распаковать все файлы во вложенную папку, причем...