Прошу помощи по регуляркам Код (Text): $c = "text1 1234 text2" echo preg_replace('/[^1-9]{4}/', '', $c); хочу вырезать все до цифр ( их должно быть 4 но первая цифра не 0) и оставить все символы после них
там прекрасно справляется строковая функция strstr() пробел только оставит перед цифрами, trim() поможет Добавлено спустя 1 минуту 38 секунд: Код (Text): $c = "text1 1234 text2"; $c = trim(strstr($c, " ")); Добавлено спустя 14 минут 10 секунд: или такой вариант Код (Text): $c = "text1 1234 text2"; $c = substr($c, strpos($c, " ")+1); тут можно обойтись без trim()
Ваш код может урезать первое слово в строке, a что если Код (Text): $c = "22sd ass text1 1234 text2 sddee 67776 "; а нам нужен только сие часть - 1234 text2, можно подобие этого кода , однако здесь проблема с нулями а нужно урезать только первый ноль и оставить все остальные в четырех 1000 или 1230. Код (Text): while($i < 3) if(intval($Text[$i++]) == 0) return; Короче точно нужен паттерн
Код (PHP): $c="text1 1234 text2"; echo preg_replace('/^[a-z]?\w+/i','',$c); //1234 text2 Не подойдет?
Спасибо rognorog Я сделал так Код (Text): $numc = ltrim("$c", "0"); и Код (Text): if (preg_match("(^[0-9]{4})",$numc){};
Не следует заключать в ковычки переменную $c. И вообще я не совсем понял, что вы хотите сделать тогда? вам нужно, чтобы всм, первые 4 символа были цифрами, когда " 0 "- не был бы корректен как число, или чтобы не учитывался как число, но вывело бы в заключение отчет от корректного числа? Тут ппц оказывается какие факты могут быть. Но хотя если говорите, сделали и работает, может бы и показали, что там в итоге
Хотел сделать ввод типа маски такого типа: 1234, или 1234 текст, или 123456789 текст, или 123456789 , без начальных нулей что и получилось , код я написал выше