首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >排序一个URL数组

排序一个URL数组
EN

Stack Overflow用户
提问于 2016-08-13 00:26:49
回答 1查看 214关注 0票数 0

我有一个包含类星体URL的数组

代码语言:javascript
复制
http://dr12.sdss3.org/sas/dr12/sdss/spectro/redux/26/spectra/0269/spec-0269-51581-0467.fits
http://dr12.sdss3.org/sas/dr12/sdss/spectro/redux/26/spectra/0329/spec-0329-52056-0059.fits
http://dr12.sdss3.org/sas/dr12/sdss/spectro/redux/104/spectra/2957/spec-2957-54807-0164.fits
http://dr12.sdss3.org/sas/dr12/sdss/spectro/redux/26/spectra/0342/spec-0342-51691-0089.fits
http://dr12.sdss3.org/sas/dr12/sdss/spectro/redux/26/spectra/2881/spec-2881-54502-0508.fits
http://dr12.sdss3.org/sas/dr12/sdss/spectro/redux/26/spectra/0302/spec-0302-51616-0435.fits
http://dr12.sdss3.org/sas/dr12/sdss/spectro/redux/26/spectra/2947/spec-2947-54533-0371.fits
http://dr12.sdss3.org/sas/dr12/sdss/spectro/redux/26/spectra/0301/spec-0301-51942-0460.fits
http://dr12.sdss3.org/sas/dr12/sdss/spectro/redux/104/spectra/2962/spec-2962-54774-0461.fits
http://dr12.sdss3.org/sas/dr12/sdss/spectro/redux/26/spectra/2974/spec-2974-54592-0185.fits

我想根据spec-旁边的数字来排序URL数组,而不是使用字母顺序。我使用sort对数组进行排序,但没有帮助,因为它总是将3rd行和2nd last行放在首位,因为它们有一个1

我想要这样的输出

代码语言:javascript
复制
http://dr12.sdss3.org/sas/dr12/sdss/spectro/redux/26/spectra/0269/spec-0269-51581-0467.fits
http://dr12.sdss3.org/sas/dr12/sdss/spectro/redux/26/spectra/0301/spec-0301-51942-0460.fits
http://dr12.sdss3.org/sas/dr12/sdss/spectro/redux/26/spectra/0302/spec-0302-51616-0435.fits
http://dr12.sdss3.org/sas/dr12/sdss/spectro/redux/26/spectra/0329/spec-0329-52056-0059.fits
http://dr12.sdss3.org/sas/dr12/sdss/spectro/redux/26/spectra/0342/spec-0342-51691-0089.fits
http://dr12.sdss3.org/sas/dr12/sdss/spectro/redux/26/spectra/2881/spec-2881-54502-0508.fits
http://dr12.sdss3.org/sas/dr12/sdss/spectro/redux/26/spectra/2947/spec-2947-54533-0371.fits
http://dr12.sdss3.org/sas/dr12/sdss/spectro/redux/104/spectra/2957/spec-2957-54807-0164.fits
http://dr12.sdss3.org/sas/dr12/sdss/spectro/redux/104/spectra/2962/spec-2962-54774-0461.fits
http://dr12.sdss3.org/sas/dr12/sdss/spectro/redux/26/spectra/2974/spec-2974-54592-0185.fits
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-13 00:42:51

如果您将始终采用这种模式,则可以尝试:

代码语言:javascript
复制
fileName = strsplit(myUrl, '/')(end)
number = strsplit(fileName(5:end), '.')(0)

带你经历这一切理解就是一切..。

我们一开始

代码语言:javascript
复制
http://dr12.sdss3.org/sas/dr12/sdss/spectro/redux/26/spectra/0269/spec-0269-51581-0467.fits

首先,我们在/字符上拆分URL。这将返回从该字符分离出来的字符串向量。因为要排序的数字位于最后的/之后,所以我们可以传递end来获取最后一个。现在我们有了

代码语言:javascript
复制
spec-0269-51581-0467.fits

接下来,让我们将这个讨厌的spec-从数字中删除。这个步骤实际上并不是必要的,因为它在所有URL中都是恒定的,但是让我们只是为了好玩才这么做。我们可以使用Matlab的子字符串来获取-后的字符,使用fileName(5:end)。这将创建一个以第五个字符(在本例中为0)开始的字符串,并继续到末尾。太好了,现在我们

代码语言:javascript
复制
0269-51581-0467.fits

看上去不错!同样的,这个部分也不是完全必要的,但是为了以防万一,不管你需要什么,我已经把它包括进去了。我们可以再次使用strsplit函数,但这次在.上拆分,通过传递0获取第一个元素。现在,我们

代码语言:javascript
复制
0269-51581-0467

去把那个小家伙分类,你就可以走了!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38928051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档