part of file name

1 次查看(过去 30 天)
ayman mounir
ayman mounir 2019-7-18
If I have a file name such as ' Hello_World_2020 ', I want to take the part between the underscores ' world ', how I would do that.
Regards.

采纳的回答

Walter Roberson
Walter Roberson 2019-7-18
编辑:Walter Roberson 2019-7-18
s = 'Hello_World_2020';
c = regexp(s, '_', 'split') ;
c{2}
You can also use strsplit() instead of regexp. On the other hand, strsplit() invokes regexp internally.
  3 个评论
Adam Danz
Adam Danz 2019-7-19
"If I write s=Hello_World_year_2020. the answer would be 'Hallo_year'. what I should modify?"
@ayman, it's not clear what rules you're following.
  • "Hello_World_2020" --> "World": This removes everything before and after the underscores, including the underscores.
  • "Hello_World_year_2020" --> "Hello_year": This doesnt' follow that rule.
I think Walter's solution will come in handy but you'll need to explain the rule you're following.
ayman mounir
ayman mounir 2019-7-19
clear, thanks

请先登录,再进行评论。

更多回答(3 个)

Adam Danz
Adam Danz 2019-7-18
s = 'Hello_World_2020';
c = regexp(s,'_(.*)_','tokens');
c = c{1}{1};
c =
'World'

madhan ravi
madhan ravi 2019-7-18
s=' Hello_World_2020 ';
[~,Wanted]=regexp(s,'_(.*)_','match','tokens');
Wanted{:}
  2 个评论
ayman mounir
ayman mounir 2019-7-19
Thanks, It is really helpful, woudl mind to explain how the exprsion works. for exmaple If I write s=Hello_World_year_2020. the answer would be 'Hallo_year'. what I should modify?
Regards
madhan ravi
madhan ravi 2019-7-19
As Adam commented , I had the same thoughts too straight away.

请先登录,再进行评论。


Jan
Jan 2019-7-19
s = ' Hello_World_2020 '
c = strsplit(s, '_')
c{2}

类别

Help CenterFile Exchange 中查找有关 Characters and Strings 的更多信息

产品


版本

R2015b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by