2017-02-08 26 views
2

文字列がありますが、 "min(Current_em)"とし、 "Current_em"(つまりカッコ内の文字列)に置き換えたいとします。正規表現のチュートリアルを見てみるとMatlab:正規表現の置き換え

、私は

regexprep('min(Current_em)', '.*\($0)', '$0') 

ような何かをしたかったしかし、それは何もしないと思いました。私は正規表現の暗い芸術へのいくつかの指針を持っていますか?

答えて

2

あなたは(...)にマッチし、(内部場合、()何が表示されないことができます)'\(([^)]*)\)'または'\(([^()]*)\)'で、その内容を取り込むことができます。 (、任意の0+文字、貪欲に、できるだけ多くを -

  • .*

    regexprep('min(Current_em)', '.*\(([^()]*)\)', '$1') 
    

    パターンの詳細:

    その後、あなたはキャプチャグループ#1への後方参照を交換する必要があります

  • \( - リテラル((正規表現のグループオープン演算子であるためエスケープする必要があります)
  • ([^()]*) - リテラルがあるので)(エスケープされなければならないグループ - ゼロ以上(*)と一致するグループ#1 ()
  • \)[^...]否定文字クラスであるように)以外の文字をキャプチャ正規表現のclose演算子) "minCurrent_em"を生成する
+0

私は "Current_em"だけを必要とします。それで、 'regexprep( 'min(Current_em)'、。* \((^())*)\) '、' $ 1 ')' – user1543042

+0

が必要です。 –

関連する問題