Using or with strfind

Hello,
I have two patterns p1 (or) p2, to be found within a single string, str. The objective is to get the position if either of those two patterns is found. But the following doesn't seem to work:
position=strfind(str,p1 || p2)
How to modify this statement to get the result?
Thanks.

回答(1 个)

position1 = strfind(str,p1) ;
position2 = strfind(str,p2) ;
OR
position = strfind(str,[p1, p2]) ;

3 个评论

Thanks. But doesn't seem to work.
str='<s 123>item1<m>list unwanted<dfy 97>item2<m>';
p1='<s 123>';
p2='<dfy 97>';
p3='<m>';
startPosition=strfind(str,[p1,p2]);
startPosition=startPosition+numel(p1);
endPosition=strfind(str,p3);
endPosition=endPosition-1;
This gives
startPosition =
[]
Also, how to resolve the fact the lengths of p1 and p2 are different, and hence, there is a mismatch in the startPosition when adding numel(p*) to it?
The objective is to extract out the items: item1 and item2.
position1 = strfind(str,p1) ;
position2 = strfind(str,p2) ;

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Characters and Strings 的更多信息

提问:

v k
2021-2-12

评论:

2021-2-12

Community Treasure Hunt

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

Start Hunting!

Translated by