0

私が持っている大きなa.txtファイルで自分のpbを説明し直します

食事の量は 1

希望の移動量は 5

「Amount of Food is」式の後の 1 と、「Desired Travel is」式の後の 5 を読む必要があります。ありがとうございます。

4

2 に答える 2

0

特定のケースでは、正規表現でこれを実行する方法は次のようになります。

まず、検索で有効な文字列を決定する必要があります。次に例を示します。

firstpar = 'First parameter is [0-9]+';

は、一連の数字 で終わる文字列'First parameter is 'を探していることを意味します。

次に、次の方法でregexporを使用できます。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は、後者では大文字と小文字が区別されないことです。

于 2013-03-29T22:59:24.227 に答える
0

これを見ることができます: regexpi を使用すると、文字列内の数字を簡単に探すことができます。

構文は次のように単純です。

startIndex = regexpi(str,expression)

ここで、expressionパラメーターは正規表現です (つまり、連続した数字を取得するための '\d*')。

于 2013-03-29T20:02:45.133 に答える