كيف يمكنك أن يتكرر خلال سلسلة متعدد الأسطر في روبي؟
-
03-07-2019 - |
سؤال
وسؤال بسيط جدا من أول مرة روبي مبرمج.
وكيف هل يتكرر خلال لوح من النص في روبي؟ في كل مرة يتم الوفاء سطر جديد، أريد أن إعادة بدء التشغيل والداخلية حلقة.
def parse(input)
...
end
المحلول
str.each_line do |line|
#do something with line
end
نصائح أخرى
وماذا قال Iraimbilanja.
وأو هل يمكن تقسيم السلسلة عند خطوط جديدة:
str.split(/\r?\n|\r/).each { |line| … }
وحذار أن each_line
تحافظ على حرف سطر تغذية، في حين split
يأكل منها.
لاحظ التعابير المنطقية كنت هنا سوف تأخذ الرعاية من جميع الأشكال إنهاء ثلاثة خط. 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
وأعتقد أن هذا يجب أن تأخذ الرعاية من أسطر جديدة.
لا تنتمي إلى StackOverflow