MATLAB Answers

0

part of file name

ayman mounir さんによって質問されました 2019 年 7 月 18 日
最新アクティビティ ayman mounir さんによって コメントされました 2019 年 7 月 19 日
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.

  0 件のコメント

サインイン to comment.

製品


リリース

R2015b

4 件の回答

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 件のコメント

ayman mounir 2019 年 7 月 19 日
Thanks a lot, it works
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 2019 年 7 月 19 日
clear, thanks

サインイン to comment.


Adam Danz
回答者: Adam Danz
2019 年 7 月 18 日

s = 'Hello_World_2020';
c = regexp(s,'_(.*)_','tokens');
c = c{1}{1};
c =
'World'

  1 件のコメント

ayman mounir 2019 年 7 月 19 日
It is really helpful, thank a lot

サインイン to comment.


madhan ravi
回答者: madhan ravi
2019 年 7 月 18 日

s=' Hello_World_2020 ';
[~,Wanted]=regexp(s,'_(.*)_','match','tokens');
Wanted{:}

  2 件のコメント

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
2019 年 7 月 19 日
As Adam commented , I had the same thoughts too straight away.

サインイン to comment.


Jan
回答者: Jan
2019 年 7 月 19 日

s = ' Hello_World_2020 '
c = strsplit(s, '_')
c{2}

  0 件のコメント

サインイン to comment.



Translated by