필터 지우기
필터 지우기

Find string with options (*)

조회 수: 13 (최근 30일)
Horace Lai
Horace Lai 2013년 5월 30일
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

채택된 답변

José-Luis
José-Luis 2013년 5월 30일
편집: José-Luis 2013년 5월 30일
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
Horace Lai
Horace Lai 2013년 5월 30일
Thanks. Just what I was looking for

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Azzi Abdelmalek
Azzi Abdelmalek 2013년 5월 30일
편집: Azzi Abdelmalek 2013년 5월 30일
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
Horace Lai
Horace Lai 2013년 5월 30일
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 2013년 5월 30일
idx=regexp(s,'Object\(\d*\)=')

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Characters and Strings에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by