0

C++ コメントの左にある文字列とコメント自体を抽出するパターンを探しています。問題は、左側にも単一のスラッシュを含めることができることです。

例:

"abc/def//comment"

その結果、コメントの左側とコメント自体を含む 2 つのグループが必要です。

  1. abc/def
  2. //コメント

助言がありますか?

4

2 に答える 2

2

ファイルを1行ずつ処理していると仮定すると、この正規表現はあなたが望むことをします:

((?:(?!//).)*)(//.*)

または単に:

(.*?)(//.*)

つまり、グループ 1 には が含まれabc/def、グループ 2 には が含まれます//comment

これが文字列リテラルと複数行のコメントで失敗する場合に注意してください (落とし穴を 2 つだけ挙げると):

"a string with // in it"

/*
// not a comment!
*/
于 2011-03-23T15:29:03.620 に答える
0
echo "abc/def//comment" | sed -r 's|(.*)//(.*)|\1 //\2|'
abc/def //comment

複数のスラッシュのペアはどうですか? 文字列内のコメントは大丈夫ですか?

于 2011-03-23T15:34:50.270 に答える