如何从字符串中删除字符?

发布于 2024-11-19 16:22:19 字数 197 浏览 2 评论 0原文

我有很多字符串,我需要删除字符串开头的“0”,但是更好的方法是什么,因为这是字符串的一个示例:

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

现在,我正在使用 substr 函数,但我认为如果我使用正则表达式会更有效吗?

I have a lot of strings, and I need to delete '0' at start of string, but what is the better way to do it, because this is an example of strings:

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

Now, I'm using substr function, but I think it's more efficient if I'll use Regex no ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

超可爱的懒熊 2024-11-26 16:22:19

只需类型转换即可有效完成

echo (int) $var;

just type cast will do it efficiently

echo (int) $var;
娇妻 2024-11-26 16:22:19

如果所有字符串的格式相同([numbers].jpg),您可以这样做:

intval('0130799.jpg', 10);

手册中的intval()

If the format is the same for all strings ([numbers].jpg), you could do:

intval('0130799.jpg', 10);

intval() in Manual

复古式 2024-11-26 16:22:19

使用正则表达式,您可以执行

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

^ 是字符串的开头(此处使用 m 修饰符表示行的开头)

0+表示 1 个或多个零。

此正则表达式将匹配所有前导零并替换为空字符串。

请参阅Regexr 上的此处

With a regular expression you can just do

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

^ is the start of the string (here with the m modifier the start of a row)

0+ means 1 or more zeros.

This regex will match all leading zeros and replace with an empty string.

See it here on Regexr

双手揣兜 2024-11-26 16:22:19

如果您使用 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 或按照其他答案中的建议进行转换。

If you use substr you have to use it in conjunction with strpos because substr needs to know string indexes.

Yes, you are better off with a regex.

If your question is how to extract the digits from a string 00000ddddddd.jpg (for some number of zeros and non-zero digits) anywhere in a string, then you should use preg_match.

Here is a complete example which you can try on 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]}";

If the entire string is a filename, then use intval or casting as suggested in the other answers.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文