regexpを使用し​てテキストから指定の​ルールに従う”小文字​”の文字列を抜き出す​方法について

6 Ansichten (letzte 30 Tage)
浩祐 佐々木
浩祐 佐々木 am 21 Apr. 2022
Kommentiert: 浩祐 佐々木 am 25 Apr. 2022
基本的な質問で恐縮なのですが,下記教えていただけると幸いです
下記のようなスクリプトを組んだとします
expression = {'AA_\w*'};
matchStr = regexp(text, expression,'match'}・・・①
ここでtextは既にWorkspaceに読み込んだテキストだと思ってください(char型です)
このように記述したときに,AA_に続く文字が大文字でも小文字でも抜き出してしまうと思うのですが,
AA_に続くものを小文字の文字列に限定したい場合,①の記述をどのようにかえればよろしいでしょうか
よろしくお願いいたします.

Akzeptierte Antwort

Atsushi Ueno
Atsushi Ueno am 21 Apr. 2022
% \w は [a-zA-Z_0-9] と等価です。
という事でメタ文字\wには大文字/小文字の区別が無いので、長くなりますが自分で書く必要がありそうです。
expression = {'AA_[a-z_0-9]*'};
  3 Kommentare
Atsushi Ueno
Atsushi Ueno am 25 Apr. 2022
expression = {'AA_\w*'};
のメタ文字\wを[a-z_0-9]に変更して
expression = {'AA_[a-z_0-9]*'};
としたので、大文字を拾わなくなる以外の仕様は元から変わっていないはずです。
expression = {'AA_[a-z_0-9]+'};
と量指定子の*(0 回以上の繰り返し)を+(1 回以上の繰り返し)に変更すれば、”AA_”のように後ろに何も文字が続かないものをリストアップしなくなります。
浩祐 佐々木
浩祐 佐々木 am 25 Apr. 2022
Atsuhi Uenoさん,
再度のご回答ありがとうございます.
下記の通りと私も思うのですが,なぜか前者では出ず,後者では出るという現象でした.
とはいえ,ご教示いただいた量指定の方法で解決できました.
ありがとうございます.*は0回以上の繰り返しの量指定子というのも知らず勉強になりました.
ありがとうございます.
expression = {'AA_\w*'};
のメタ文字\w[a-z_0-9]に変更して
expression = {'AA_[a-z_0-9]*'};
としたので、大文字を拾わなくなる以外の仕様は元から変わっていないはずです。

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu MATLAB finden Sie in Help Center und File Exchange

Produkte


Version

R2015a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!