当前位置: 首页 > 面试题库 >

如何从字符串中删除扩展名(仅实际扩展名!)

施旭东
2023-03-14
问题内容

我正在寻找一个小的功能,该功能允许我从文件名中删除扩展名。

我通过谷歌搜索发现了许多示例,但是它们很糟糕,因为它们只是用“。”删除了字符串的一部分。。他们使用点作为限制器,只是剪切字符串。

看这些脚本,

$from = preg_replace('/\.[^.]+$/','',$from);

要么

 $from=substr($from, 0, (strlen ($from)) - (strlen (strrchr($filename,'.'))));

当我们添加这样的字符串时:

这是字符串的例子

它将仅返回“ This” …

该扩展名可以包含3个或4个字符,因此我们必须检查点是否位于4或5个位置,然后将其删除。

怎么做到呢?


问题答案:

试试这个:

$withoutExt = preg_replace('/\\.[^.\\s]{3,4}$/', '', $filename);

因此,它匹配一个点,后跟三个或四个不是点或空格的字符。“ 3或4”规则可能应该放宽,因为存在许多较短或较长的文件扩展名。



 类似资料:
  • 问题内容: 给定一个文件名,例如: 我想删除扩展名(如果存在)。我怎样用Java做这个?谢谢! 问题答案: 就像是 索引检查可避免将“ ” 等隐藏文件转换为“”,并避免使用诸如的名称。

  • 问题内容: 在托管的IIS7环境中,我正在寻找使用无扩展名文件名的最简单方法。简单来说,我有以下页面: index.html(或.aspx)-> domain.com gallery.html-> domain.com/gallery videos.html-> domain.com/videos等… 我只有很少的页面,没有动态代码,没什么特别的。我发现的所有示例或在开发的其他站点中使用的方法都围

  • ES6加强了对Unicode的支持,并且扩展了字符串对象。 字符的Unicode表示法 JavaScript允许采用\uxxxx形式表示一个字符,其中“xxxx”表示字符的码点。 "\u0061" // "a" 但是,这种表示法只限于\u0000——\uFFFF之间的字符。超出这个范围的字符,必须用两个双字节的形式表达。 "\uD842\uDFB7" // "

  • 问题内容: 假设我有一个删除扩展名的方法,我需要两个变量的结果,一个是域名,另一个是扩展名。 我尝试过但不起作用,我猜只能用正则表达式.... 问题答案: 这将产生以下数组

  • 问题内容: 您可以这样创建一个字符串扩展名: 但是,如果您希望将其应用于可选字符串怎么办? 问题答案: 在Swift 3.1中,您还可以向可选值添加扩展:

  • 问题内容: (不包括任何外部库。) 在不假定任何文件名的情况下,删除Java中文件名扩展名的最有效方法是什么? 一些例子和预期结果: 文件夹>文件夹 hello.txt>你好 read.me>阅读 hello.bkp.txt> hello.bkp 怪异..名称>怪异。 .hidden> .hidden (或者应该只 隐藏 最后一个?) 编辑 :原始问题假定输入是文件名(而不是文件路径)。由于一些答