2010-09-21 37 views

Trả lời

16

Không cần của regex ở đây và bạn có thể sử dụng rtrim cho nó, sạch hơn và nhanh hơn:

$str = rtrim($str); 

Nhưng nếu bạn muốn có một giải pháp dựa trên regex bạn có thể sử dụng:

$str = preg_replace('/\s*$/','',$str); 

Các regex sử dụng là /\s*$/

  • \s là ngắn đối với bất kỳ không gian trắng char, trong đó bao gồm không gian.
  • * là lượng hóa cho không hoặc hơn
  • $ được cuối neo

Về cơ bản chúng ta thay thế trailing ký tự khoảng trắng không có gì (''), hiệu quả xóa chúng.

+0

Thay vì '*' quantifier, bạn có thể sử dụng '+' quantifier để tránh thay thế không có gì. – Toto

+0

cảm ơn bạn rất nhiều !!! thông tin nhân vật được đánh giá cao – Zebra

+0

@ M42, cảm ơn bạn! – Zebra

9

Bạn không thực sự cần regex đây, bạn có thể sử dụng chức năng rtrim().

$string = "some random text with extra spaces at the end  "; 
$string = rtrim($string); 

Code on ideone


Xem thêm:

+0

Downvoter, vì lý do nào? –

+0

Heh, tôi cũng muốn biết, +1 để thiết lập mọi thứ phù hợp với vũ trụ. – Gazler

+0

+1 vì câu trả lời này có thể kém hấp dẫn hơn, nhưng câu trả lời phù hợp nhất! – Gombo

1

Bạn có thể sử dụng trim() để làm điều này:

http://php.net/manual/en/function.trim.php

+0

Xin lỗi ... nhỡ "AT THE END". Như những người khác đã chỉ ra ... rtrim() – Don

+0

bạn có thể chỉnh sửa câu trả lời của mình. – LarsH

+0

@LarsH, Không muốn chỉnh sửa nó giống với trường hợp khác trong trường hợp tùy chọn trim() có thể hoạt động cho những người tìm kiếm trong tương lai, nhưng được lấy ... thx – Don

Các vấn đề liên quan