Vì vậy, chỉ cần một chút làm rõ, có ba cách mà bạn có thể đi về điều này: sub
, reverse.chomp.reverse
và lstrip
.
Tôi khuyên bạn nên chống lại sub
vì nó ít có thể đọc được hơn, nhưng cũng vì cách hoạt động: bằng cách tạo chuỗi mới kế thừa từ chuỗi cũ của bạn. Thêm vào đó bạn cần một biểu thức chính quy cho một thứ khá đơn giản.
Vì vậy, bạn sẽ đến số reverse.chomp.reverse
và lstrip
. Nhiều khả năng, bạn muốn lstrip
vì nó nhanh hơn một chút, nhưng hãy nhớ rằng các hoạt động strip
là không phải giống như hoạt động chomp
. strip
sẽ loại bỏ tất cả newlines hàng đầu và khoảng trắng:
"\n aaa\nbbb".reverse.chomp.reverse # => " aaa\nbbb"
"\n aaa\nbbb".lstrip # => "aaa\nbbb"
Nếu bạn muốn chắc chắn rằng bạn chỉ loại bỏ một ký tự và nó chắc chắn là một dòng mới, sử dụng các giải pháp reverse.chomp.reverse
. Nếu bạn xem xét tất cả các dòng mới và khoảng trắng, hãy truy cập lstrip
.
Một trường hợp tôi có thể nghĩ đến khi sử dụng cụm từ thông dụng sẽ là nếu bạn chưa biết số \r
s và \n
s lúc đầu và muốn cắt tất cả nhưng tránh chạm vào bất kỳ khoảng trắng nào. Bạn có thể sử dụng một vòng lặp và các phương thức String để cắt tỉa nhưng nó sẽ trở nên xấu hơn. Các tác động hiệu suất không thực sự quan trọng đến mức nào.
Bạn có muốn rời khỏi trailing newlines tại chỗ (tại cuối dòng)? –