最近 X/Motif から Qt に移動された C++ コード ベースに取り組んでいます。Boolean (X から) をすべて bool に置き換える Perl スクリプトを作成しようとしています。スクリプトは単純な置換を行うだけです。
s/\bBoolean\b/bool/g
いくつかの条件があります。
1) コードに CORBA があり、\b は CORBA::Boolean に一致しますが、これは変更しないでください。
2) 文字列 (つまり、「ブール値」) として見つかった場合は一致しないはずです。
更新しました:
#1 では、後読みを使用しました
s/(?<!:)\bBoolean\b/bool/g;
#2 では、先読みを使用しました。
s/(?<!:)\bBoolean\b(?!")/bool/g</pre>
これは私の状況ではうまくいく可能性が高いですが、次の改善はどうですか?
3) 文字列の途中にある場合は一致しません (thanks nohat )。
4) コメントの場合は一致しません。(// また /**/)