2013/07/15ソースコードを機械的に解析する際、コメントが邪魔だったりします。viでコメント部分を削除しようとして、正規表現で以下のようにコメント部分を検索するとします。含めてマッチしてしまいます。*/の間にはコメントの閉じである*/がこないことを正規表現で表現する必要があります。ここで、少し考え方が難しくなります。じつは正規表現で否定を表現する場合、[^abc]と表現できますが、これはabcという文字列がこないという意味ではなくて、aかbかcがこないという意味なので目的にあいません。*/という”/”を含んだコメントにマッチしなくなってしまいます。いう表現はどう表現すればよいのでしょうか。正規表現では文字列否定専用の表現はありません。\\/\\*\\([^\\/]\\|[^*]\\/\\)*\\*\\/となります。*/は途中に改行が入る可能性があります。”.”は改行にはマッチしないので、改行の表現である”\n”をマッチの条件に追加して\\/\\*\\([^\\/]\\|[^*]\\/\\|\\n\\)*\\*\\/となり、なんとか動いてくれたようです。複雑ですね~これを使用することで、コメントの中にある文字列を探すことも可能になります。以下が改行を考慮した*/以外の文字列を示しているので\\([^\\/]\\|[^*]\\/\\|\\n\\)*コメント内の文字列を探すには、探す文字列の前後にこの表現があればよいことになります。hogeを探すならこのようになります。*/もマッチしてしまいます。他にも条件によっては動作がおかしくなる可能性があるので注意してくださ。文字列を含まないというのを汎用的に表現すると、もっと難しく、さらにメモリ消費が激しいようです。参考サイトには文字列を含まない正規表現を自動生成してくれるJavascriptもありますが、maznの環境では動作が重く、実用に耐えられませんでした。コメントをキャンセルメールアドレスが公開されることはありません。足す関連記事オフラインファイルで特定のファイルの同期ができないWindowsにはオフラインファイルという機能があります。...LVM覚え書き@Fedora14LVMの使い方をすぐ忘れてしまうので、覚え書き。3aの電池消費が以下のようにひどく困ってました。