2016-09-03 41 views
0

開始文字と3つの異なる終了文字の間に3つの数字の文字列を抽出する必要があります。 _aでスタッフィングし、_b、_cまたは_dで終わります。私はstrfindでそれを行う方法を知っていますが、本当にregexpの使い方を知りたいです。 2文字間の文字列を抽出する - Matlab(正規表現)

は、例えば文字列があってもよい:

ggggga_a123_cggggg

又は/

gggggg_a345_bggggg

又は/

gggggg_a456_dggggg私はちょうどそれが可能になるエンディングどの文字を知らずに3つの数字を抽出するにはどうすればよい

。私はこのような正規表現で行くと思います おかげ

+1

試した正規表現は何ですか? –

+0

'_f?(n_ \ m_ | w_)?' –

+0

私はちょうどregexp(s、 '(?<= _ a)。*(?= b_ | c_ | d _)'、 'match'); これはすべてのインスタンスで有効ですか? –

答えて

1

:これは何をするか

_a(\d{3})_[bcd] 

が一致し、その後、抽出のためのキャプチャグループ(())で3桁の数字と一致し、開始_aと一致しています2番目のアンダースコアとbc、またはdのいずれかです。

関連する問題