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のdispをテキスト文字列にリダイレクト
- 3. Matlabの複数行の文字列リテラル?
- 4. の連結文字列フィギュアコマンド(MATLAB)
- 5. Matlabの文字列をforeachループ
- 6. Start&Endindexが既知の文字列を切り捨てます
- 7. MATLAB char配列、Aで始まる文字列
- 8. Matlabの配列に数字で分割した後に文字列を格納
- 9. Matlabで文字列をカンマで区切る
- 10. 文字列を含むMatlab多次元配列+ Excelへのエクスポート
- 11. MATLAB、文字列から行列へのユーザ入力の取得
- 12. MATLABは文字列サブセットのセル配列を検索します
- 13. Matlab。ユーザー入力行列を文字列に変換する
- 14. forループ内で文字列をregexprepに置き換える? (MATLAB)
- 15. MATLABで文字列を比較する問題
- 16. TeX文字のMATLABテーブル?
- 17. MATLAB特殊文字/オペレーター
- 18. Matlabニューラルネットワークの文字認識
- 19. は、インデックス(Matlabの)と、文字列のセル配列に1つの文字列を比較
- 20. MATLAB GUIでユニコード文字を使用するMATLAB
- 21. MATLABで文字列から数値配列を作成する方法は?
- 22. matlabワークスペースで変数名のセル配列から文字列を取り出す
- 23. MATLABの文字列のリストを反復する
- 24. MATLABのCONCATENATE組み合わせ可変長文字列やベクトル
- 25. 文字列にアポストロフィを追加する - 。Matlabの
- 26. のTrace.Write(文字列、文字列)とTrace.WriteLine(文字列、文字列)カテゴリ
- 27. 文字列で
- 28. は、文字列、文字列配列マップ
- 29. ASP.NET MVCのMocking Controller.Url.Action(文字列、文字列、オブジェクト、文字列)
- 30. [文字列、地図[文字列を、文字列]] jsオブジェクト
私はコメントに同意しません - あなたはいつも 'isempty'に' strfind'をラップしてブール値を得ることができます。また、 'regexp'のMATLAB実装が' strfind'よりはるかに遅いことを覚えておいてください。 – mbroshi
@mbroshi、そうではありません。 – Temak
'' regexp(s、 '^ It-is') 'が返された場合、' {[]} 'が返されるので' isempty(strfind(s、regexp) 'は常にtrueです。エラー: > "セルからの論理への変換ができません" – Temak