Getting parts of string with for loop
1 回表示 (過去 30 日間)
古いコメントを表示
Hi hopefully u can help me!
I have the attached string (picture) and now i want to get from every string in every column the word between the last \ and dot. So for example for the first column i would like to get Gös-Schb2_Ma142-Schb.
The problem is that i will have files later with a different pattern. So its important that i can find with the code the last backslash and dot. My code is:
pointLocation = strfind(A, '.');
underlineLocation = strfind(A, '\');
firstPart = A(underlineLocation(end):pointLocation(end));
But its not working at all...maybe u can help me?![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/539061/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/539061/image.png)
4 件のコメント
Stephen23
2021 年 3 月 5 日
編集済み: Stephen23
2021 年 3 月 5 日
"That is just for filenames i guess..."
The function has no idea if the input text is a filename of not. It just identifies the relevant separator characters.
"...and to seperate filename and path"
and file extension.
"But i have strings in a table right?"
That is the very first time you used the term table. Your screenshot shows a 1x408 string array, not a table.
"Dont know how i can work with that."
You could try using fileparts. The loop probably isn't required either.
Mathieu NOE
2021 年 3 月 5 日
hello
so what does your code generate ?
is it possible for you to send a few examples of strings ?
採用された回答
Prudhvi Peddagoni
2021 年 3 月 8 日
Hi,
As Stephen Cobeldick pointed out. fileparts function does exactly what you are looking for. the second output, name, is the part of the string that is after last '/' and before last '.'. So you can get the strings from a table and give it to this function.
Hope this helps.
0 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Cell Arrays についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!