我有很多字符串,需要删除开头处的'0',但是怎样做更好呢?以下是一些字符串的示例:
0130799.jpg //I need to get 130799
0025460.jpg //I need to get 25460
现在,我正在使用substr函数,但我认为如果我使用正则表达式会更有效率,对吗?
我有很多字符串,需要删除开头处的'0',但是怎样做更好呢?以下是一些字符串的示例:
0130799.jpg //I need to get 130799
0025460.jpg //I need to get 25460
现在,我正在使用substr函数,但我认为如果我使用正则表达式会更有效率,对吗?
只需进行类型转换即可高效完成
echo (int) $var;
如果您使用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
或强制类型转换。使用正则表达式,您只需执行以下操作
preg_replace('/^0+/m','',$sourcestring);
^
是字符串的开头(这里使用 m
修饰符表示行的开头)
0+
表示一个或多个零。
这个正则表达式将匹配所有前导零并替换为空字符串。
在 Regexr 上查看它