문제

처음 루비 프로그래머의 매우 간단한 질문.

루비의 텍스트 슬래브를 어떻게 반복합니까? Newline이 충족 될 때마다 내부 루프를 다시 시작하고 싶습니다.

def parse(input)
    ...
end
도움이 되었습니까?

해결책

문자열#earg_line

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

다른 팁

Iraimbilanja가 말한 것.

또는 문자열을 새 줄로 분할 할 수 있습니다.

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

조심하십시오 each_line 라인 피드 숯을 유지합니다 split 먹습니다.

여기서 내가 사용한 Regex는 세 가지 선 엔딩 형식을 모두 처리합니다. 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