私が持っている大きなa.txtファイルで自分のpbを説明し直します
食事の量は 1
希望の移動量は 5
「Amount of Food is」式の後の 1 と、「Desired Travel is」式の後の 5 を読む必要があります。ありがとうございます。
私が持っている大きなa.txtファイルで自分のpbを説明し直します
食事の量は 1
希望の移動量は 5
「Amount of Food is」式の後の 1 と、「Desired Travel is」式の後の 5 を読む必要があります。ありがとうございます。
特定のケースでは、正規表現でこれを実行する方法は次のようになります。
まず、検索で有効な文字列を決定する必要があります。次に例を示します。
firstpar = 'First parameter is [0-9]+';
は、一連の数字
で終わる文字列'First parameter is 'を探していることを意味します。
次に、次の方法でregexp
orを使用できます。regexpi
results = regexp(mystring, firstpar, 'match');
mystring
検索を実行するテキストはどこにあり'match'
、インデックスではなく、テキストの一部を出力として使用することを意味します。
これで、テキストに表示され、定義results
を満たした文字列を各セルに含むセル マトリックスが作成されました。firstpar
文字列のセル マトリックスから数値だけを抽出するには、regexp
もう一度使用できますcellfun
が、セル マトリックスのすべてのセルにコマンドを繰り返し適用する を 使用できます。
numbers = cellfun(@(x) str2num(regexp(x, '[0-9]+', 'match', 'once')), results);
numbers
探していた数値の配列です。
さまざまな文字列パターンに対して同じことができます。より一般的な文字列定義が必要な場合 (firstpar
ここで使用した単純なものではなく) 、正規表現に関する matlab ドキュメントを読み(alexcasalboni がコメントに貼り付けました)、[入力引数] まで下にスクロールし、 「式」を展開します。
regexp
との違いregexpi
は、後者では大文字と小文字が区別されないことです。
これを見ることができます: regexpi を使用すると、文字列内の数字を簡単に探すことができます。
構文は次のように単純です。
startIndex = regexpi(str,expression)
ここで、expression
パラメーターは正規表現です (つまり、連続した数字を取得するための '\d*')。