Я создаю скрипт, который разрезает ненужные части строки, но оставляет остальную часть. У меня странная проблема - созданное мной регулярное выражение соответствует строке, но не для всех возможных знаков.PHP Regex не соответствует всему возможному слову
Испытано строка:
$itemFullName = "10-16X4 POLI MG SELF START BLK PLASTIC";
"Узор" Я:
POLI MG FT SDS BLK ZC
PHP код:
if(preg_match("@(POLI){1}(.)+(BLK)@", $itemFullName))
{
$itemAttributes = preg_replace("@(POLI){1}(.)+(BLK)@", "#", $itemFullName);
}
И Finaly $ itemAttributes установлен на:
"10-16X4 #K PLASTIC".
Похоже, что только для регулярного выражения [POLI MG SELF START BL] K заменяет его на «#» вместо целого матча POLI MG SELF START BLK и замените его.
Как это исправить?
'$ itemFullName =" 10-16X4 POLI MG SELF START BLK PLASTIC "; $ itemAttributes = preg_replace ("@ (POLI) {1} (.) + (BLK) @", "#", $ itemFullName); echo $ itemAttributes; 'Это работает для меня, возвращая' 10-16X4 # PLASTIC', как и ожидалось. – JTC
[Работает для меня] (http://3v4l.org/s7ODI) (хотя это ужасно неэффективно) – DaveRandom
Работает для меня тоже. – Toto