MATLAB Answers

1

regexp question (-.- 4 word minimum)

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

+1 Let's wait until the regexp masters wake up!

로그인 to comment.

태그

답변 수: 2

Azzi Abdelmalek 님의 답변 18 Sep 2012
Azzi Abdelmalek 님이 편집함. 18 Sep 2012
 채택된 답변

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

로그인 to comment.


Matt Tearle 님의 답변 18 Sep 2012

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

regexp challenges always make me feel dumb and inadequate...
Thanks for posting it!

로그인 to comment.



Translated by