正規表現 Part8
■ このスレッドは過去ログ倉庫に格納されています
0290デフォルトの名無しさん
2011/08/07(日) 03:15:33.89Emacs Lisp
●検索か置換か?
検索
●説明
C++などでよく使われる構文にマッチさせたい。
具体的にはクラスインスタンスへのアクセスアローやドットにマッチさせたい。
●対象データ
class A;
A a;
A* a_ref = &a;
a.m_hoge;
a->m_hoge;
●希望する結果
これにマッチさせる場合
"\\(?:\\.\\|->\\)\\(\\(?:[a-zA-Z0-9][_a-zA-Z0-9]*\\)?\\)\\="
が正解らしいですが
なぜ正解かわからない部分があるので教えてください。
まず"?"演算子の使い方ですが・・・直前の文字列(空文字込み)にマッチさせるために置いてあるとして
直後の ":"が理解不能です。
後半でも、":"が出てきますがこれも不可解。名前空間の"::"などにマッチさせたいのであれば
::や:?:とかならわかるのですが・・
■ このスレッドは過去ログ倉庫に格納されています