我有很多的字符串,我需要在字符串的開始刪除「0」,但什麼是更好的方式來做到這一點,因爲這是一個字符串的例子:如何將字符刪除到一個字符串?
0130799.jpg //I need to get 130799
0025460.jpg //I need to get 25460
現在,我使用substr函數,但我認爲如果我使用Regex否更有效率?
我有很多的字符串,我需要在字符串的開始刪除「0」,但什麼是更好的方式來做到這一點,因爲這是一個字符串的例子:如何將字符刪除到一個字符串?
0130799.jpg //I need to get 130799
0025460.jpg //I need to get 25460
現在,我使用substr函數,但我認爲如果我使用Regex否更有效率?
這對我來說可以!謝謝 ! – bahamut100
如果使用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
或鑄塑在其他答案建議。
這種方式對於「000AA00」字符串可以嗎? 「AA00」結果? – bahamut100
糟糕!接得好。我編輯我的答案,以便它不會選擇前導零。非常抱歉。 –
用正則表達式,你可以做
preg_replace('/^0+/m','',$sourcestring);
^
是字符串(在這裏與m
修改行的開始)
0+
意味着1個或多個零的開始。
這個正則表達式將匹配所有前導零並替換爲一個空字符串。
正如Ray Toal所說:這種方式對於「000AA00」字符串可以嗎? 「AA00」結果? – bahamut100
@ bahamut100我添加了一個鏈接到正則表達式測試工具,你可以看到它。是的,它也將從「000AA00」中刪除前導0,這是你想要的嗎? – stema
作爲一個正則表達式超過另一種方法的效率見: http://stackoverflow.com/questions/3303355/substring-match-faster-with-regular-expression –