C++ コメントの左にある文字列とコメント自体を抽出するパターンを探しています。問題は、左側にも単一のスラッシュを含めることができることです。
例:
"abc/def//comment"
その結果、コメントの左側とコメント自体を含む 2 つのグループが必要です。
- abc/def
- //コメント
助言がありますか?
C++ コメントの左にある文字列とコメント自体を抽出するパターンを探しています。問題は、左側にも単一のスラッシュを含めることができることです。
例:
"abc/def//comment"
その結果、コメントの左側とコメント自体を含む 2 つのグループが必要です。
助言がありますか?
ファイルを1行ずつ処理していると仮定すると、この正規表現はあなたが望むことをします:
((?:(?!//).)*)(//.*)
または単に:
(.*?)(//.*)
つまり、グループ 1 には が含まれabc/def
、グループ 2 には が含まれます//comment
。
これが文字列リテラルと複数行のコメントで失敗する場合に注意してください (落とし穴を 2 つだけ挙げると):
"a string with // in it"
/*
// not a comment!
*/
echo "abc/def//comment" | sed -r 's|(.*)//(.*)|\1 //\2|'
abc/def //comment
複数のスラッシュのペアはどうですか? 文字列内のコメントは大丈夫ですか?