-1

で終わるファイル名を正規表現で抽出したい_x.txt。正規表現が使えると思っていたのです*_x.txtが、MATLABが難しそうです。

>> regexp( 'asdfg_x.txt', '*_x.txt' )
ans =
     []
>> regexp( 'asdfg_x.txt', '_x.txt' )
ans =
     6

「*_x.txt」が機能しないのはなぜですか? 私が達成しようとしていることに最適な正規表現ではないことはわかっていますが、うまくいくはずです。私はこれを Linux で行って、うまくいったことを知っています。現在、Windows 7、MATLAB 2009b を使用しています。

4

2 に答える 2

1

アスタリスクを一致させるには、アスタリスクの前にピリオドを付ける必要があります。

regexp( 'asdfg_x.txt', '.*_x.txt' )

Octave 3.2.4で確認済み

于 2012-11-17T22:54:35.557 に答える
1

*正規表現の特殊文字である量指定子です。この文字は、先行する文字/グループを 0 回以上一致させます。したがって、この量指定子には何かを繰り返す必要がありますが、式には何もありません。

regexp( 'asdfg_x.txt', '.*_x.txt' )、改行を除くすべての文字に一致する.の正規表現の特殊文字です。したがって.*、一連の任意の文字に一致します。

于 2012-11-17T23:14:22.290 に答える