-1

Railsは初めてですが、現在、PHPとJavaScriptとCoffeescriptのコード化された行とコメント行(単一行と複数行のコメント)を取得しないようにする必要がある、rubyを使用したphp、javascript/coffeescriptリポジトリのコード統計に取り組んでいます。正規表現を使用するファイル。誰かがこれを助けることができます、事前に感謝します

4

1 に答える 1

1

これが私の男です:

f = File.open("test.php")

loc = 0
comments = 0
while line = f.gets
  if commented ||= line.match(/^\/\*/)
    commented = nil if line.match(/\*\/$/)
    comments += 1
  elsif line.match(/^\s*\/\//)
    comments += 1
  else
    loc +=1 unless line.match(/^\s*\n/)
  end
end

puts loc
puts comments

これは次の場合に機能します。

//line comments
/* inline block comments */
/* multi
line
comments */

使い方:

  • ファイルを開きます
  • カウンターを0で初期化します
  • getを使用して各行を調べ、それを行変数に割り当てます
  • 行がブロックコメントの先頭と一致する場合は、コメント付き変数を設定します
  • コメント変数に1を追加
  • コメントが設定されている場合は、コメントの終わりを検索し、見つかった場合はコメントをnilに設定します
  • それ以外の場合、コメントブロックが開かれておらず、「//」が見つかった場合は、コメントに1を追加します
  • それ以外の場合は、「空の」行でない限り、locに1を追加します
于 2012-12-20T01:54:49.060 に答える