Find string with options (*)

12 views (last 30 days)
Horace Lai
Horace Lai on 30 May 2013
Hi,
I have a cell of strings that I want to see if any of them match a certain string pattern. The string pattern can be something like 'Object(1)=' or Object(123)='. So basically 'Object(*)=' where the asterisk represents a number. Is there a function in Matlab that has a feature that can search strings like that?
Horace

Accepted Answer

José-Luis
José-Luis on 30 May 2013
Edited: José-Luis on 30 May 2013
expr = 'Object\([0-9]*\)='; %Regular expression
bla = 'asad ca Object(0)= asdas Object(k)=asdObject(1999)='; %string to search
your_idx = regexp(bla,expr); %Returns starting index of matches
Note that you can also get the index of the ending of the matches, the matched strings themselves, etc... For more details please look at:
doc regexp
  1 Comment
Horace Lai
Horace Lai on 30 May 2013
Thanks. Just what I was looking for

Sign in to comment.

More Answers (1)

Azzi Abdelmalek
Azzi Abdelmalek on 30 May 2013
Edited: Azzi Abdelmalek on 30 May 2013
s='123 sdd5 Object(1)= 25 333sss'
idx=strfind(s,'Object(1)=')
%or
k=123
pattern=sprintf('Object(%d)=',k)
s='123 sdd5 Object(123)= 25 333sss'
idx=strfind(s,pattern)
  2 Comments
Horace Lai
Horace Lai on 30 May 2013
Hi, thanks for the response. But it wasn't really what I was looking for. I am looking for a solution where you do not know the number before hand. In your first example you knew the number was 1 and in the second you knew hte number was 123.
Azzi Abdelmalek
Azzi Abdelmalek on 30 May 2013
idx=regexp(s,'Object\(\d*\)=')

Sign in to comment.

Categories

Find more on Characters and Strings in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!