How I would determine if a string contains multiple substrings?
조회 수: 257 (최근 30일)
이전 댓글 표시
I'd like to know if a string has multiple substrings (e.g, words) in it.
For example:
myString = "This has some words in it.";
I would want to know if that string has "This" AND "some". I know I can use "contains" to look for individual substrings, but I want to know if ALL substrings are in a string.
댓글 수: 0
채택된 답변
추가 답변 (3개)
Bruno Luong
2023년 8월 4일
편집: Bruno Luong
2023년 8월 4일
myString = "This has some words in it.";
subStrings = ["This","some"];
hasAllSubstrings = isequal(regexp(myString, subStrings, 'once', 'match'), subStrings)
댓글 수: 0
Les Beckham
2023년 2월 23일
편집: Les Beckham
2023년 2월 23일
myString = "This has some words in it.";
if contains(myString, "This") && contains(myString, "some")
disp Yes
else
disp No
end
Steven Lord
2023년 11월 10일
myString = "This has some words in it.";
s = split(myString)
whichWordsAreIn = ismember(["some"; "in"], s)
allWordsIn = all(whichWordsAreIn)
You can combine this into one command if you want; I showed temporary variables to illustrate each step. For exclusions you want to wrap the ismember call in ~any() instead of all.
댓글 수: 2
Steven Lord
2023년 11월 16일
I neglected to remove punctuation from the string before splitting it. The isstrprop function could help with this (though you'd have to be careful with punctuation included as part of a word, like "you'd" as I wrote earlier in this phrase.)
The accepted answer has a similar problem, if you change the text to be examined to include a word that contains as part of it one of the substrings being searched for.
myString = "This has something words in it.";
subStrings = ["This","some"]; % myString has "something", does that match "some"?
hasAllSubstrings = all(arrayfun(@(substr) contains(myString, substr, 'IgnoreCase', true), subStrings))
For more general cases and processing lots of data, you may want to use the functionality for analyzing text data provided in Text Analytics Toolbox.
참고 항목
카테고리
Help Center 및 File Exchange에서 Characters and Strings에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!