4
A
答えて
6
あなたは1つの文字列が別で始まっている場合伝えるためにstrfind
機能を使用することができます。関数は、探している文字列のそれぞれの開始インデックスを返します。文字列が見つからない場合は空の配列を返します。ストリングが'It-is'
で開始した場合
S = 'Find the starting indices of the pattern string';
strfind(S, 'It-is')
次いでstrfind
によって返される配列の最初のインデックスは、(第1の文字の、すなわちインデックス)であろう。長い文字列の場合
3
、a.startsWith(b)
と同等のを持っているために、この
s = (numel(a)>=numel(b)) && all(a(1:min(numel(a),numel(b)))==b(1:min(numel(a),numel(b))));
を行うために高速です。
0
strfindの問題は、スカラーではない結果が返され、使用できる場所が制限されることです。もっとstraightfowardはそうのようregexpを使用することであろう、
s = 'It-is true.';
if regexp(s, '^It-is')
disp('s starts with "It-is"')
end
0
私はsが、セルその後、正規表現であるとcell arrayを返すstrfind場合ことを追加します。ある場合、彼らは返すので、あなたが直接、ブール値にregexp
またはstrfind
の戻り値をキャストすることはできません
pos = strfind(s, 'It-iss');
if (~isempty(pos{1,1}))
disp('s starts with "It-is"')
end
または
pos = regexp(s, '^It-is');
if (~isempty(pos{1,1}))
disp('s starts with "It-is"')
end
:
あなたは、この場合の二つの変種のいずれかを使用することができます一致するものがない場合、regexp
およびstrfind
は、を空のセル{[]}
で返します。最初のセルにアクセスするには、私たちに必要な中括弧演算子pos{1,1}
が必要です。私にとって最高の作品
3
オプションは次のとおりです。
if ~isempty(regexp(s, '^It-is', 'once')) || ~isempty(regexp(s, '^It-was', 'once'))
「一度は」パラメータは次のとおりです。
~isempty(regexp(s, '^It-is', 'once'))
〜のisEmptyは、あなたがこのような論理的論理和または論理積で表現を使用することができます初めに一致を見つけたら、文字列をスキャンし続けることを確実にする最適化。
関連する問題
- 1. MATLAB文字列処理
- 2. MATLABでの高速文字列分割
- 3. Matlabの文字列の変換配列
- 4. Matlab文字列オブジェクトが文字列で分割された場合
- 5. Matlabの文字列をforeachループ
- 6. MATLAB文字列2テーブル番号
- 7. Matlabの複数行の文字列リテラル?
- 8. MATLABのdispをテキスト文字列にリダイレクト
- 9. の連結文字列フィギュアコマンド(MATLAB)
- 10. Matlabの文字列の検索やインデックス
- 11. 文字配列matlabにアラビア文字を格納
- 12. 文字列書式設定(文字番号)MATLAB
- 13. Matlab ...文字列分割の文字 - 削除するには?
- 14. Matlab:文字列のセル配列に文字列を先頭に追加
- 15. Start&Endindexが既知の文字列を切り捨てます
- 16. MATLAB char配列、Aで始まる文字列
- 17. Matlab Coderを使用してCの文字配列をMatlabの文字列に変換する
- 18. MATLAB:セル配列の文字列をint配列にマッピング
- 19. Matlabの配列に数字で分割した後に文字列を格納
- 20. 数値で文字列を追加/ Matlab配列で文字列に数値を連結
- 21. Matlabで文字列をカンマで区切る
- 22. は、私は次の文字列の行列を持つベクトルMATLAB
- 23. MATLABは配列として文字列を格納します
- 24. 文字列を含むMatlab多次元配列+ Excelへのエクスポート
- 25. Matlabのセル配列の文字列値の一括置換
- 26. MATLABは文字列サブセットのセル配列を検索します
- 27. matlabのセル配列の文字列を連結する方法
- 28. Matlab。ユーザー入力行列を文字列に変換する
- 29. MATLAB、文字列から行列へのユーザ入力の取得
- 30. 大規模なMATLABテーブルで文字列(キーワード)を検索
私はコメントに同意しません - あなたはいつも 'isempty'に' strfind'をラップしてブール値を得ることができます。また、 'regexp'のMATLAB実装が' strfind'よりはるかに遅いことを覚えておいてください。 – mbroshi
@mbroshi、そうではありません。 – Temak
'' regexp(s、 '^ It-is') 'が返された場合、' {[]} 'が返されるので' isempty(strfind(s、regexp) 'は常にtrueです。エラー: > "セルからの論理への変換ができません" – Temak