regexp question (-.- 4 word minimum)
2 ビュー (過去 30 日間)
古いコメントを表示
I have a string thats goes like this:
055451051 (/document name/folder/file name)
I want a simple regexp that will give me the name between the third / to the ). I tried:
regexp(str, '/(?<name>\w*))', 'names')
but it keeps returning a 0x0 struct. I can get it if I use split on the string using '/' as a delimeter. But my file name come out like 'File name)' and has the parentheses on the end. I can get rid of it but I'm thinking that there's an easier way for me to get whats between the / and ).
1 件のコメント
採用された回答
Azzi Abdelmalek
2012 年 9 月 18 日
編集済み: Azzi Abdelmalek
2012 年 9 月 18 日
s='055451051 (/document name/folder/file name)'
out=s(max(strfind(s,'/'))+1:end-1)
in the above example the third is the last, if they are more then 3 /. then
s='055451051 (/document name/folder/file name)'
idx=strfind(s,'/')
out=s(idx(3)+1:end-1)
0 件のコメント
その他の回答 (1 件)
Matt Tearle
2012 年 9 月 18 日
I know you've already got it working, but regexp challenges are always fun. This seems to work...
x = regexp(str,'/([\w\s]*?))','tokens')
Match any number of characters and spaces, but only as many as necessary, between a / and a ).
1 件のコメント
Sean de Wolski
2012 年 9 月 18 日
regexp challenges always make me feel dumb and inadequate...
Thanks for posting it!
参考
カテゴリ
Help Center および File Exchange で Search Path についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!