質問

初めてのRubyプログラマーからの非常に簡単な質問。

Rubyでテキストのスラブをどのようにループしますか?改行に遭遇するたびに、内側のループを再開したい。

def parse(input)
    ...
end
役に立ちましたか?

解決

String#each_line

str.each_line do |line|
    #do something with line
end

他のヒント

イランビランジャが言ったこと。

または、新しい行で文字列を分割できます:

str.split(/\r?\n|\r/).each { |line| … }

each_line は改行文字を保持し、 split はそれらを食べることに注意してください。

ここで使用した正規表現は、3つの行末形式すべてを処理します。 String#each_line は、オプション引数 sep_string で行を区切ります。デフォルト引数は $ / で、デフォルト引数は" \ n"です。 単純に。

最後に、より複雑な文字列解析を行う場合は、組み込みのStringScannerクラスを確認してください。

任意のパターンでも実行できます:

str.scan(/\w+/) do |w|
  #do something
end
str.each_line.chomp do |line|
  # do something with a clean line without line feed characters
end

これで改行を処理する必要があると思います。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top