Php 如何删除字符串中的字符?
我有很多字符串,需要删除字符串开头的“0”,但更好的方法是什么,因为这是字符串的一个示例:Php 如何删除字符串中的字符?,php,regex,string,preg-match,substring,Php,Regex,String,Preg Match,Substring,我有很多字符串,需要删除字符串开头的“0”,但更好的方法是什么,因为这是字符串的一个示例: 0130799.jpg //I need to get 130799 0025460.jpg //I need to get 25460 现在,我正在使用substr函数,但我认为如果使用Regex no,效率会更高。只需输入cast就可以了 echo (int) $var; 如果所有字符串([numbers].jpg)的格式都相同,则可以执行以下操作: intval('0130799.jpg', 1
0130799.jpg //I need to get 130799
0025460.jpg //I need to get 25460
现在,我正在使用substr函数,但我认为如果使用Regex no,效率会更高。只需输入cast就可以了
echo (int) $var;
如果所有字符串([numbers].jpg)的格式都相同,则可以执行以下操作:
intval('0130799.jpg', 10);
如果使用
substr
则必须将其与strpos
结合使用,因为substr
需要知道字符串索引
是的,你最好用正则表达式
如果您的问题是如何从字符串中任意位置的字符串00000ddd.jpg(对于某些数量的零和非零数字)中提取数字,那么您应该使用preg_match
下面是一个完整的示例,您可以试一试
如果整个字符串是一个文件名,则使用
intval
或其他答案中建议的强制转换。使用正则表达式即可
preg_replace('/^0+/m','',$sourcestring);
^
是字符串的开头(此处使用m
修饰符作为行的开头)
0+
表示1个或多个零
此正则表达式将匹配所有前导零并替换为空字符串
看吧的确,这很容易!非常感谢你!对于“000AA00”字符串,这种方式可以吗?结果是“AA00”?哎呀!抢手货我编辑了我的答案,以便它不会拾取前导零。非常抱歉。就像对Ray说的那样,Toal回答:“000AA00”字符串可以用这种方式吗?“AA00”在结果中?@bahamut100 I添加了一个指向正则表达式测试工具的链接,您可以在其中看到它。是的,它还将从“000AA00”中删除前导0,这是您想要的吗?关于正则表达式相对于其他方法的效率,请参见:
preg_replace('/^0+/m','',$sourcestring);