У меня проблема с регулярным выражением.
Вот код и результат массива:
Код:
foreach ($sizeNameFin as $key => $value) {
echo("<br>");
echo($value);
echo("<br>");
}
выход:
Vorhang mit Vorhangband 150 / 250
Vorhang mit Vorhangband 150 / 250
Vorhang mit Vorhangband 150 / 250
Vorhang mit Vorhangband 150 / 250
Итак, теперь мне нужна только эта часть: "150/250"
Я пытался:
foreach ($sizeNameFin as $key => $value) {
print_r((preg_match('/[0-9]*[ ][/][ ][0-9]*/',$value)));
echo("<br>");
}
Выход:
1
1
1
1
Так что он показывает мне только первую цифру, а не 150 и так далее.
Я мог бы понять, если я напишу [0-9] в моем RegEx, но за алфавитом стоит *, так должен ли он брать 150 или нет?
preg_match() возвращает 1, если шаблон соответствует заданному объекту, 0, если нет, или FALSE, если произошла ошибка. Использовать if (preg_match('/[0-9]+ / [0-9]+/',$value, $matches)) { echo $matches[0]; }скобки вокруг одиночных символов бесполезны, вы можете использовать /[0-9]* / [0-9]*/, который более читабелен. также имейте в виду, что ваше регулярное выражение будет соответствовать строке, подобной этой " / " (без чисел), если вам нужны числа, вы должны использовать + вместо *
Jeto -Нет, потому что у меня 26000 значений и не всегда одни и те же слова - спасибо за комментарий WiktorStribiżew - Спасибо, сэр! вот и решение ᴄʀᴏᴢᴇᴛ - спасибо за эту заметку :)






Просто
str_replace'Vorhang mit Vorhangband 'с пустой строкой, если это всегда одно и то же?