PHP Удалить значение строки с номерами переменных - PullRequest
0 голосов
/ 05 февраля 2012

В основном из базы данных я получаю данные, отформатированные как это имя name_project101. Теперь это может продолжать увеличиваться, так что в конечном итоге это может быть nameofproject1001. Мой вопрос: как я могу обрезать число и просто получить имя проекта.Я думал об использовании substr, но так как я не знаю длину всегда, я не могу этого сделать.Так как числа отличаются, я не думаю, что могу использовать str_replace, есть ли способ сделать это?

Ответы [ 4 ]

3 голосов
/ 05 февраля 2012

Похоже, что-то не так в вашей схеме базы данных. Вероятно, вам следует попытаться выполнить рефакторинг / нормализацию вашей схемы.

Но пока вы можете использовать rtrim(), чтобы обрезать все числа с правой стороны.

$val = rtrim($val, '0123456789');

Примеры

Input               Output
nameofproject1001   nameofproject
nameofproject       nameofproject
n4me0fproj3ct1001   n4me0fproj3ct
1 голос
/ 05 февраля 2012

для строки типа, project12V123, лучше сделать это

$text = `project12V123`;
$text = preg_replace('/([\w]+)([^0-9])([0-9])+$/', '$1$2', $text);

Вернется:

Project12V

или используйте rtrim:

$text = rtrim($text,'0123456789'); 
0 голосов
/ 05 февраля 2012

Вы обязательно должны использовать регулярные выражения:

$fullname = "nameofproject101";
preg_match("/([a-z]+)([0-9]+)/i", $fullname, $matches);
$name   = $matches[1];
$number = $matches[2];
echo "'$fullname' is '$name' followed by '$number'";
0 голосов
/ 05 февраля 2012
preg_replace('/[^a-z]/i', '', $string); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...