각 단어 사이에 공백이 하나있는 단어가 들어있는 텍스트 파일이 있습니다. 그리고 원하는 줄의 길이 (출력)를 제공하는 명령 줄 항목도 있습니다. 출력은 명령 행에서 가져온 행 길이에 맞는 단어입니다.Ruby로 줄 서식 지정
첫 번째 단어는 줄의 왼쪽에 있고 마지막 단어는 오른쪽에 있습니다. 각 단어 사이의 공백은 동일합니다.
답장을 보내 주시면 감사하겠습니다.
각 단어 사이에 공백이 하나있는 단어가 들어있는 텍스트 파일이 있습니다. 그리고 원하는 줄의 길이 (출력)를 제공하는 명령 줄 항목도 있습니다. 출력은 명령 행에서 가져온 행 길이에 맞는 단어입니다.Ruby로 줄 서식 지정
첫 번째 단어는 줄의 왼쪽에 있고 마지막 단어는 오른쪽에 있습니다. 각 단어 사이의 공백은 동일합니다.
답장을 보내 주시면 감사하겠습니다.
정규 표현식의 작은 소량 나중에 할 것입니다 : 분류
s = "The quick brown fox jumps over the lazy dog"
def limit_length(s, limit)
s =~ /\A.{0,#{limit}}(?=\Z|)/ && $& || ''
end
p limit_length(s, 2) # => ""
p limit_length(s, 3) # => "The"
p limit_length(s, 42) # => "The quick brown fox jumps over the lazy"
p limit_length(s, 43) # => "The quick brown fox jumps over the lazy dog"
정규 표현식 :
이\A From the beginning of the string
.{0,#{limit}} Match up to *limit* characters
(?=\Z|) Followed by the end of the string or a blank
끝에 펄 - 억양의 비트가 일치 반환 문자열이거나 일치하지 않으면 빈 문자열. 다음과 같이 분해됩니다.
&& If true (i.e., if match)
$& matched string
|| else
'' empty string
File.open('input.txt').each do |l|
length_so_far = 0
puts l.split(' ').select{|w| (length_so_far += w.length) < max_length}.join(' ')
end
이 숙제입니까? – Anna
그런 식으로. – dbtek