как удалить символы в строку? - PullRequest
5 голосов
/ 13 июля 2011

У меня много строк, и мне нужно удалить '0' в начале строки, но как лучше это сделать, потому что это пример строк:

0130799.jpg //I need to get 130799
0025460.jpg //I need to get 25460

Теперь я использую функцию substr, но я думаю, что более эффективно, если я буду использовать Regex, нет?

Ответы [ 4 ]

11 голосов
/ 13 июля 2011

просто приведение типа сделает это эффективно

echo (int) $var;
3 голосов
/ 13 июля 2011

Если формат одинаков для всех строк ([numbers] .jpg), вы можете сделать:

intval('0130799.jpg', 10);

intval () в Manual

0 голосов
/ 13 июля 2011

С помощью регулярного выражения вы можете просто сделать

preg_replace('/^0+/m','',$sourcestring);

^ - начало строки (здесь с модификатором m начало строки)

0+ означает 1 или более нулей.

Это регулярное выражение будет соответствовать всем лидирующим нулям и заменено пустой строкой.

См. Здесь здесь, в регулярном выражении

0 голосов
/ 13 июля 2011

Если вы используете substr, вы должны использовать его вместе с strpos, потому что substr нужно знать строковые индексы.

Да, вам лучше использовать регулярное выражение.

Если ваш вопрос заключается в том, как извлечь цифры из строки 00000ddddddd.jpg (для некоторого числа нулей и ненулевых цифр) в любом месте в строке, то вам следует использовать preg_match.

Вот полный пример, который вы можете попробовать на http://writecodeonline.com/php/

preg_match('/([1-9][0-9]+)\.jpg/', "I have a file called 0000482080.jpg somewhere", $matches);
echo "I like to call it: {$matches[0]}";

Если вся строка является именем файла, тогда используйте intval или приведение типа, как предлагается в других ответах.

...